java - JTable 的非实时/非实时排序

标签 java swing jtable live tablerowsorter

当表格处于排序模式(使用RowSorter)时,似乎大多数时候表格都是实时排序的。例如,每当我添加新行时,表格都会自动排序(编辑单元格除外)。我想知道是否有任何方法可以禁用这种实时排序行为。

我想要做的是:对表进行升序或降序排序后,排序器保持当前排序状态并停止实时排序。然后可以在底部添加新行,并且可以上下移动所选行,并且表格更新 View 模型中的所有更改。

@trashgod:感谢您的回答。我实际上有点喜欢原生行排序方法,因为我可以以三态(升序、降序和未排序)循环列状态。如果使用 Collections.sort,我必须在每次排序之前创建一个变量来保存原始行顺序。

最佳答案

您可以使用 Collections.sort() 独立于 RowSorterTableModel 的行进行排序。和一个自定义的Comparator,例如所示的 here ,可以接受指定排序方向的参数。

enum Sort { ASCENDING, DESCENDING; }
class RecordComparator implements Comparator<Record> {
    public RecordComparator(Sort sort, ...) { ... }
}

关于java - JTable 的非实时/非实时排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10842290/

相关文章:

java - java8 中的并行排序返回无效结果

java - 使用 int[] 填充 JComboBox

java - JPanel 遮挡 BufferedImage

java - 在 java 中显示 jTable 中的第一行 SQL

java - 如何向 JScrollPane 添加水平/垂直滚动条

java - Selenium 断言等于 Value1 或 Value2

java - 单例 servlet?

java - 查找数组中的多个众数

java - java 中列表的外观

Java:尝试右键单击 JTable 弹出窗口来打开文本文件