我们有一个简单的项目,可以从套接字读取数据,我们希望使用即将到来的数据填充表,但是我们无法找到将行添加到尚未创建的JTable
对象的方法,我们只能找到如何在表创建时添加行。将行添加到JTable中
是否可以将行动态添加到JTable
,或者有更好的替代对象来处理这种显示数据的方式?
编辑:非常感谢您的回答。
他们三人都看起来很有希望,但我只能选择一个,我认为最好的是Guillaume的。
我们有一个简单的项目,可以从套接字读取数据,我们希望使用即将到来的数据填充表,但是我们无法找到将行添加到尚未创建的JTable
对象的方法,我们只能找到如何在表创建时添加行。将行添加到JTable中
是否可以将行动态添加到JTable
,或者有更好的替代对象来处理这种显示数据的方式?
编辑:非常感谢您的回答。
他们三人都看起来很有希望,但我只能选择一个,我认为最好的是Guillaume的。
您应该创建一个自定义TableModel
。 A JTable
实际上并不存储行,它总是将其委托给TableModel
。为了帮助你实现它,你应该使用AbstractTableModel
。每次添加行时,请别忘记拨打fireTableRowsInserted()
。为了获得更好的性能,如果添加很多行,请尝试批量更新并一次添加许多行。
一旦开始动态添加和删除JTable中的元素,您确实需要开始使用TableModel。
查看Java Tutorial了解更多详情。
如果使用默认的表模型的一个JTable,那么你可以用下面的代码
if (dest+1 < table.getRowCount()-1)
((DefaultTableModel) table.getModel()).insertRow(dest+1, getValuesForNewRow());
else
((DefaultTableModel) table.getModel()).addRow(getValuesForNewRow());
它最好只是保持的DefaultTableModel的保持它传递给JTable的构造函数之前添加行。然后您不需要触摸JTable或执行任何投射。 – 2008-11-17 15:21:28