我有一个jtable和defaultTableModel,我想每3秒删除JTable的所有行,并在JTable中添加新行。考虑到性能,做到这一点的最佳选择是什么,重新创建JTable或删除所有行并添加行?
做到这一点的最佳选择是什么,续订JTable或删除所有行和addrows?
如果您重新创建JTable,则将为表重新创建所有渲染器和编辑。
如果您更改了tablemodel,则表需要重新创建TableColumnModel,以及所有基于新TableModel的TableColumns。
将需要创建更多的对象来支持jtable/tablememodel关系。
卸下行和添加行,只会导致表使用所有当前渲染器重新粉刷新数据。我会说这更有效。而不是一次添加一行,而是应该一次添加所有行
您可以创建一个挖掘到数据对象的tablemodel。一旦更改基础数据对象,您就会调用FireTableDataChanged()。
来自Javadoc的AbstractTableModel#firetabledatachanged():
通知所有听众,表行中的所有单元格值都可能已经更改。行的数量也可能已更改,可JTable应该从头开始重新绘制表。表格的结构(如列的顺序)被认为是相同的。