Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание новых строк в JTable, dynamisch, JTable 
:(
    Опции темы
LeonLG
Дата 24.3.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



люди помогите пожалуйста
я создaл таблицу, работает пока все нормально

Код

private JTable table;
private int anzahlZeilen = 10;
private Tabelle tableModel;
...
.....
.......

tableModel = new Tabelle(anzahlZeilen);//параметр передается в class Tabelle(10)
        table = new JTable(tableModel, null);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        table.setCellSelectionEnabled(true);
.......
...........
getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);



здесь идет выдача JTable c 10 строками(anzahlZeilen)

дальше я создал JButton, при нажатии которого, число строк в етой же JTable изменилось бы


Код

....
........
...........
public void actionPerformed(ActionEvent ae)
        {
            objectButton = ae.getSource();
            ereignisse(objectButton);
        }
        public void ereignisse(Object objectButton){
                        
            if(objectButton == felderAnlegenButton){
                                int anzahlZeilen = 0;                 
                for(int i=beginnJahrInt; i < endeJahrInt; i++){
                    anzahlZeilen++;
                }
//здесь должно выдаваемое число(anzahlZeilen) передаться как новый параметр в JTable и изменить //число строк



ктонибудь знает как ето сделать??
PM MAIL   Вверх
powerOn
Дата 24.3.2006, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



посмотри сдесь, вроде как обсуждалось добавление строк в таблицу,
http://forum.vingrad.ru/index.php?showtopic=88068


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
LSD
Дата 25.3.2006, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



Судя по тому что такого класса как Tabelle в составе JDK нет, то ты сам писал модель. Значит тебе надо будет сделать в твоей модели метод по добавлению строки, в нем надо будет добавить строку в ту коллекцию где ты хранишь данные и оповестить слушателей об изменении модели.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
LeonLG
Дата 15.4.2006, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



я поробовал создать пару методов, там где "добавление строк", вот так

Код

package view;

import java.util.Hashtable;
import java.util.Vector;

import javax.swing.table.AbstractTableModel;

public class Tabelle extends AbstractTableModel {
    final String[] spaltenName = { "Jahr", "Einnahmen", "Betriebskosten",
            "Zinsen", "Tilgung", "Flow to equity", "Fremdkapital" };

    private Number[][] daten;

    private int anzahlZeilen = 10;

    private Vector data = new Vector();

    private Vector rows = new Vector();;

    final Class[] typ = new Class[] { Integer.class, Integer.class,
            Integer.class, Double.class, Double.class, Integer.class,
            Integer.class };

    // Konstruktor
    public Tabelle() {
        this.daten = new Number[anzahlZeilen][typ.length];
    }

    // Methoden für das TableModel-Interface
    public int getRowCount() {
        return anzahlZeilen;
    }

    public int getColumnCount() {
        return spaltenName.length;
    }

    public String getColumnName(int column) {
        return spaltenName[column].toString();
    }

    // Spalten nicht editerbar bestimmen
    public boolean isCellEditable(int zeile, int spalte) {
        if (spalte == 0 || spalte == 3 || spalte == 4 || spalte == 5
                || spalte == 6)
            return false;
        return true;
    }

    public Class getColumnClass(int columnIndex) {
        return typ[columnIndex];
    }

    public Object getValueAt(int rowIndex, int columnIndex) {
        return daten[rowIndex][columnIndex];
    }

    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
        daten[rowIndex][columnIndex] = (Number) aValue;        
    }


////////////////////////////добавление строк///////////////////////////////////////////
    private Vector toVector(Object[] data) {
        Vector ret = new Vector();
        for (int i = 0; i < data.length; i++) {
         ret.addElement(data[i]);
        }
        return ret;
    }
    public void addRow(Vector d) {
        insertRow(data.size(), d);
    }
    public void insertRow(int row, Vector rowData) {
        data.insertElementAt(rowData, row);
        fireTableRowsInserted(row, row);
    }
    
    public void removeRow(int row) {
        data.removeElementAt(row);
        super.fireTableRowsDeleted(row, row);
    }
    ////////////////////////////////////////////////////////////////////
}


но чегото не получается, может че нетаk делаю???
PM MAIL   Вверх
garm
Дата 16.4.2006, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.3.2006

Репутация: нет
Всего: 2



Почему у тебя добавление строк производится в data, а значения строк(в методе getValueAt()) берутся из daten?
И при добавлении строк следует увеличивать anzahlZeilen - иначе у таблицы будет неверное представление о числе строк в твоей модели. 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0927 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.