如何在更改TableModel时禁用JTable排序?

时间:2015-08-08 01:24:34

标签: java swing sorting jtable tablerowsorter

所以我有一个填充了许多元素的JTable和一个用于对行进行排序的TableRowSorter。这张表有一个" pull"检查来自外部源的任何更改的模式,并根据需要更新TableModel。

问题是当表刷新其内容时,排序会导致表闪烁。我怎样才能使JTable绘制到屏幕直到1)内容已刷新2)这些内容是否已经排序?

1 个答案:

答案 0 :(得分:1)

我猜(如果您不提供SSCCE会发生这种情况)您有基于DefaultTableModel的表模型,并使用{{1}在某种循环中添加新内容}。每次调用addRow都会调用addRow。这被UI捕获并刷新表。

您需要做的是避免在插入所有行之前触发事件。从模型中重写fireTableRowsInserted方法并删除fire事件。您可以在插入所有行后触发事件。