Добавление строк в JTable
У нас есть простой проект, в котором мы читаем данные из сокета, и мы хотим заполнить таблицу предстоящими данными, но мы не можем найти способ добавить строки к еще созданному объекту JTable
, мы можем только найти, как добавлять строки во время создания таблицы.
Можно ли динамически добавлять строки в JTable
или есть лучший альтернативный объект для обработки этого способа отображения данных?
EDIT : Большое спасибо за ваши ответы.
- Изменить цвет фона одной ячейки в JTable
- Самый простой код для заполнения JTable из ResultSet
- Как получить ТОЧНУЮ середину экрана, даже если размер
- JavaFx tableview sort действительно медленный, как улучшить скорость сортировки, как в java swing
- Использование DocumentFilter.FilterBypass
Все трое выглядят очень многообещающими, но я должен выбрать только один, и я думаю, что лучшим является Гийом.
- Почему он неодобрительно использует пустой макет в Swing?
- Установка цвета фона для JFrame
- MouseMotionListener в Java Swing, используя его с компонентами внутри компонентов и т. Д.
- CubicCurve2D, соединяющий два экземпляра JInternalFrame
- Java Swing: зачем изменять размер frameworks, чтобы добавить компоненты, добавленные
- JPanel Padding в Java
- Как я могу установить элемент управления в JTableHeader JTable?
- Как добавить кнопку закрытия на вкладку JTabbedPane?
Вы должны создать пользовательский TableModel
. JTable
фактически не хранит строки, он всегда делегирует это TableModel
. Чтобы помочь вам реализовать его, вы должны использовать AbstractTableModel
. Не забудьте вызвать fireTableRowsInserted()
каждый раз, когда вы добавляете строки. Для улучшения производительности, если вы добавляете много строк, попробуйте выполнить пакет обновления и добавить несколько строк за раз.
Если вы используете модель таблицы по умолчанию для JTable, вы можете добавить строки со следующим кодом
if ( dest+1 < table.getRowCount()-1 ) ( (DefaultTableModel) table.getModel() ).insertRow(dest+1, getValuesForNewRow()); else ( (DefaultTableModel) table.getModel() ).addRow(getValuesForNewRow());
Как только вы начнете динамически добавлять и удалять элементы из JTable, вам действительно нужно начать использовать TableModel.
Дополнительную информацию см. В Руководстве по Java .