как обновить JTable - PullRequest
       20

как обновить JTable

1 голос
/ 29 апреля 2010

Добрый вечер

У меня есть JTable, который я построил с помощью TableModel, как обновить элементы таблицы, потому что когда я делаю table = new JTable (new TableProg (elementTab)), я создаю другую таблицу над исходной таблицей, и это очень уродливо

Так, например, как обновлять элемент таблицы в цикле на каждой итерации при изменении «elementTab»?

Большое спасибо

Ответы [ 4 ]

3 голосов
/ 29 апреля 2010

Не уверен, что понимаю ваш вопрос.

Для обновления ячеек таблицы вы просто используете

table.setValueAt(...);

Чтобы обновить всю таблицу сразу, вы можете создать новую TableModel, а затем обновить таблицу новой моделью:

TableModel model = new YourTableModel(...);
table.setModel( model );

При обучении работе с моделями начните с DefaultTableModel, поскольку он также поддерживает динамические изменения модели с помощью addRow (...) и removeRow ().

2 голосов
/ 29 апреля 2010

Я рекомендую вам расширить AbstractTableModel и реализовать void addRow(YourObject row), который подходит вам. Или, если вы хотите обновить данные таблиц отверстий, вы можете реализовать void addElements(YourCollection elements) и использовать void fireTableDataChanged() -метод.

т.е. храните свои данные в LinkedList и не забывайте использовать void fireTableRowsInserted(int firstRow, int lastRow) при добавлении новой строки.

0 голосов
/ 29 апреля 2010

Спасибо большое всем, что я решил мою проблему с:

модель = новая TableProg (элементы); table.setModel (модель);

в цикле

0 голосов
/ 29 апреля 2010

Немного более подробной информации о том, что такое elementTab, очень помогло бы предложить решение. Если вы хотите добавить строки, просто создайте массив объектов и добавьте в модель. Например.

    TableModel model = table.getModel();
Object[] row = new Object[] {1,2,3};
model.addRow(row);

если вы хотите выборочно обновить ячейки, используйте model.setValueAt(Object,row,col);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...