2008-11-17 170 views
13

我们有一个简单的项目,可以从套接字读取数据,我们希望使用即将到来的数据填充表,但是我们无法找到将行添加到尚未创建的JTable对象的方法,我们只能找到如何在表创建时添加行。将行添加到JTable中

是否可以将行动态添加到JTable,或者有更好的替代对象来处理这种显示数据的方式?

编辑:非常感谢您的回答。

他们三人都看起来很有希望,但我只能选择一个,我认为最好的是Guillaume的。

回答

12

您应该创建一个自定义TableModel。 A JTable实际上并不存储行,它总是将其委托给TableModel。为了帮助你实现它,你应该使用AbstractTableModel。每次添加行时,请别忘记拨打fireTableRowsInserted()。为了获得更好的性能,如果添加很多行,请尝试批量更新并一次添加许多行。

6

一旦开始动态添加和删除JTable中的元素,您确实需要开始使用TableModel。

查看Java Tutorial了解更多详情。

11

如果使用默认的表模型的一个JTable,那么你可以用下面的代码

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

它最好只是保持的DefaultTableModel的保持它传递给JTable的构造函数之前添加行。然后您不需要触摸JTable或执行任何投射。 – 2008-11-17 15:21:28