Добавление строк в 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.