所以我有一个充满许多元素的 JTable 和一个对行进行排序的 TableRowSorter。该表具有“拉动”模式,用于检查来自外部源的任何更改并根据需要更新 TableModel。
问题是排序导致表在刷新其内容时闪烁。我怎样才能使 JTable 绘制到屏幕上,直到 1) 内容已刷新 2) 这些内容已排序?
最佳答案
我猜(如果您不提供SSCCE
,就会发生这种情况)您有一个基于DefaultTableModel
的表格模型,并以某种形式添加新内容使用addRow
循环。每次调用 addRow
都会依次调用 fireTableRowsInserted
。这会被 UI 捕获并刷新表格。
您需要做的是避免触发事件,直到插入所有行。重写模型中的 insertRow
方法并删除火灾事件。您可以在插入所有行后触发该事件。
关于java - 如何在更改 TableModel 时禁用 JTable 排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31888708/