我们有一个简单的项目,需要从socket读取数据并将其填充到一个表格中,但我们找不到一种方法来向已创建的JTable
对象添加行,我们只能在创建表格时添加行。
是否可以动态地向JTable
添加行,或者有更好的对象来处理这种方式显示数据呢?
编辑:非常感谢你们的回答。
它们都看起来非常有前途,但我必须选择一个,我认为最好的是Guillaume的。
您需要创建一个自定义的 TableModel
。一个 JTable
实际上并不存储行数据,它总是委托给一个 TableModel
。为了帮助您实现它,您应该利用 AbstractTableModel
。别忘了每次添加行时调用fireTableRowsInserted()
。如果您要添加很多行数据,为了获得更好的性能,请尝试批量更新并一次性添加多行。
if ( dest+1 < table.getRowCount()-1 )
( (DefaultTableModel) table.getModel() ).insertRow(dest+1, getValuesForNewRow());
else
( (DefaultTableModel) table.getModel() ).addRow(getValuesForNewRow());