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

标签 java swing sorting jtable tablerowsorter

所以我有一个充满许多元素的 JTable 和一个对行进行排序的 TableRowSorter。该表具有“拉动”模式,用于检查来自外部源的任何更改并根据需要更新 TableModel。

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

最佳答案

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

您需要做的是避免触发事件,直到插入所有行。重写模型中的 insertRow 方法并删除火灾事件。您可以在插入所有行后触发该事件。

关于java - 如何在更改 TableModel 时禁用 JTable 排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31888708/

相关文章:

java - 不使用 JButton 从 JList 获取值

java - Java 在图像和显示方面是否存在任何已知问题

java - Jpanel 第一项居中,尽管位置为 0,0

c - 在C中按字母顺序对链表进行排序

python - 根据 Python 中的键获取排序列表的一部分

java - 为什么使用增强的 for 循环来实现冒泡排序会给我 ArrayIndexOutOfBoundsException?

java - "Simply"确定 Java 单选按钮 id

java - ANTLR:Unicode 字符扫描

python - 如何用两个键对 lambda 进行排序?

java - 如何为 JWS 应用程序添加库?