所以我有一个填充了许多元素的JTable和一个用于对行进行排序的TableRowSorter。这张表有一个" pull"检查来自外部源的任何更改的模式,并根据需要更新TableModel。
问题是当表刷新其内容时,排序会导致表闪烁。我怎样才能使JTable绘制到屏幕直到1)内容已刷新2)这些内容是否已经排序?
答案 0 :(得分:1)
我猜(如果您不提供SSCCE
会发生这种情况)您有基于DefaultTableModel
的表模型,并使用{{1}在某种循环中添加新内容}。每次调用addRow
都会调用addRow
。这被UI捕获并刷新表。
您需要做的是避免在插入所有行之前触发事件。从模型中重写fireTableRowsInserted
方法并删除fire事件。您可以在插入所有行后触发事件。