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

How to disable JTable sorting when altering the TableModel?

所以我有一个 JTable 填充了许多元素和一个 TableRowSorter 来对行进行排序。此 table 具有 "pulling" 模式,可检查来自外部源的任何更改并根据需要更新 Table 模型。

问题是排序导致 Table 在 table 刷​​新其内容时闪烁。我怎样才能使 JTable 绘制到屏幕直到 1) 内容已刷新 2) 这些内容已排序?

我想(如果您不提供 SSCCE 就会发生这种情况)您有一个基于 DefaultTableModel 的 table 模型并以某种形式添加新内容使用 addRow 循环。每次调用 addRow 都会依次调用 fireTableRowsInserted。这被 UI 捕获并且 table 被刷新。

您需要做的是在插入所有行之前避免触发事件。从模型中覆盖 insertRow 方法并删除火灾事件。您可以在插入所有行后触发事件。