如何在更改 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
方法并删除火灾事件。您可以在插入所有行后触发事件。
所以我有一个 JTable 填充了许多元素和一个 TableRowSorter 来对行进行排序。此 table 具有 "pulling" 模式,可检查来自外部源的任何更改并根据需要更新 Table 模型。
问题是排序导致 Table 在 table 刷新其内容时闪烁。我怎样才能使 JTable 绘制到屏幕直到 1) 内容已刷新 2) 这些内容已排序?
我想(如果您不提供 SSCCE
就会发生这种情况)您有一个基于 DefaultTableModel
的 table 模型并以某种形式添加新内容使用 addRow
循环。每次调用 addRow
都会依次调用 fireTableRowsInserted
。这被 UI 捕获并且 table 被刷新。
您需要做的是在插入所有行之前避免触发事件。从模型中覆盖 insertRow
方法并删除火灾事件。您可以在插入所有行后触发事件。