重新创建Jtable或删除所有行并添加新行?

时间:2017-12-13 01:22:58

标签: java swing jtable defaulttablemodel

我有一个JTable和一个DefaultTableModel,我希望每隔3个secondes删除JTable的所有行,并向JTable添加新行。考虑到性能,最好的选择是什么,重新创建Jtable或删除所有行并添加行?

2 个答案:

答案 0 :(得分:0)

  

最好的选择是什么,续订Jtable或删除所有行和地址?

如果重新创建JTable,将为该表重新创建所有渲染器和编辑器。

如果更改TableModel,那么表将需要重新创建TableColumnModel,并且所有TableColumns都需要基于新的TableModel。

需要创建更多对象来支持JTable / TableModel关系。

删除行和添加行只会使表格使用所有当前渲染器重新绘制新数据。我会说这更有效率。而不是一次添加一行,您应该一次添加所有行

答案 1 :(得分:0)

您可以创建一个挖掘数据对象的表模型。一旦更改了基础数据对象,就调用fireTableDataChanged()。

来自JavaDoc for AbstractTableModel#fireTableDataChanged():

  

通知所有侦听器表格行中的所有单元格值都可能已更改。行数也可能已更改,JTable应从头开始重绘表。表的结构(按列的顺序)假定是相同的。