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

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

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

EDIT: Большое спасибо за ваши ответы.

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

Ответы

Ответ 1

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

Ответ 2

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

 if ( dest+1 < table.getRowCount()-1 )
    ( (DefaultTableModel) table.getModel() ).insertRow(dest+1, getValuesForNewRow());
  else
    ( (DefaultTableModel) table.getModel() ).addRow(getValuesForNewRow());

Ответ 3

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

Подробнее см. Учебник по Java.