我有一个JTable和一个DefaultTableModel,我希望每隔3个secondes删除JTable的所有行,并向JTable添加新行。考虑到性能,最好的选择是什么,重新创建Jtable或删除所有行并添加行?
答案 0 :(得分:0)
最好的选择是什么,续订Jtable或删除所有行和地址?
如果重新创建JTable,将为该表重新创建所有渲染器和编辑器。
如果更改TableModel,那么表将需要重新创建TableColumnModel,并且所有TableColumns都需要基于新的TableModel。
需要创建更多对象来支持JTable / TableModel关系。
删除行和添加行只会使表格使用所有当前渲染器重新绘制新数据。我会说这更有效率。而不是一次添加一行,您应该一次添加所有行
答案 1 :(得分:0)
您可以创建一个挖掘数据对象的表模型。一旦更改了基础数据对象,就调用fireTableDataChanged()。
来自JavaDoc for AbstractTableModel#fireTableDataChanged():
通知所有侦听器表格行中的所有单元格值都可能已更改。行数也可能已更改,JTable应从头开始重绘表。表的结构(按列的顺序)假定是相同的。