Добавление строк в JTable - PullRequest
       20

Добавление строк в JTable

14 голосов
/ 17 ноября 2008

У нас есть простой проект, в котором мы читаем данные из сокета, и мы хотим заполнить таблицу поступающими данными, но мы не можем найти способ добавить строки в еще не созданный объект JTable, мы можем только найти, как добавить строки во время создания таблицы.

Возможно ли динамическое добавление строк в JTable, или есть лучший альтернативный объект, чтобы справиться с таким способом отображения данных?

РЕДАКТИРОВАТЬ : Большое спасибо за ваши ответы.

Все три из них выглядят очень многообещающе, но я должен выбрать только один, и я думаю, что лучший - это Гийом.

Ответы [ 3 ]

12 голосов
/ 17 ноября 2008

Вы должны создать пользовательский TableModel. JTable на самом деле не хранит строки, он всегда делегирует это TableModel. Чтобы помочь вам в его реализации, вы должны использовать AbstractTableModel. Не забывайте звонить fireTableRowsInserted() каждый раз, когда добавляете строки. Для улучшения производительности, если вы добавляете много строк, попробуйте пакетировать обновления и добавлять много строк одновременно.

11 голосов
/ 17 ноября 2008

Если вы используете модель таблицы по умолчанию для JTable, вы можете добавить строки со следующим кодом

 if ( dest+1 < table.getRowCount()-1 )
    ( (DefaultTableModel) table.getModel() ).insertRow(dest+1, getValuesForNewRow());
  else
    ( (DefaultTableModel) table.getModel() ).addRow(getValuesForNewRow());
6 голосов
/ 17 ноября 2008

Как только вы начнете динамически добавлять и удалять элементы из JTable, вам действительно нужно начать использовать TableModel.

Подробнее см. Java Tutorial .

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