我正在编写一个能够处理频繁更新的JTable.通常,这个JTable有大约1000行数据,而且有些列会经常更新,因为它们的价值来源于在市场时间内移动很多的股票价格.
我面临的问题是,当大量的行(例如80%)正在更新时,JTable变得非常慢,持续20-30秒左右,分析器显示EDT线程非常繁忙,处理tableChanged调用.
我尝试通过1)抑制fireTableCellUpdated来折叠更改2)如果<= 50行更改,则在各行上调用fireTableRowUpdate 3)如果有> 50行更改,则为整个表调用fireTableDataChanged.
它更好,但是当频繁更新时仍然很慢,我的理解是fireTableDataChanged也很慢.因此,如果数据更新频繁,将频繁调用fireTableDataChanged,并且GUI会感觉迟钝.
可有人经历了这一主题推荐最佳实践使用fireTableRowsUpdate,fireTableDataChanged和fireTableStructureChanged改善GUI活力和表现?如果你有指向解决这个问题的示例代码的指针,它会更好.
非常感谢
安东尼斯