如何知道何时对JTable进行排序

时间:2019-05-31 10:04:41

标签: java swing jtable

在表上显示新的行顺序之后,我需要知道何时对JTable进行排序。

我尝试过:

 getModel().addTableModelListener(new TableModelListener() {        
        @Override
        public void tableChanged(TableModelEvent e) {
            System.out.println("change");               
        }
    });  

但是排序后似乎没有调用方法tableChanged(TableModelEvent e)

1 个答案:

答案 0 :(得分:1)

JTable中的排序和相关事件由RowSorter处理。可以使用JTable.setRowSorter进行设置。

RowSorter允许您通过使用RowSorter.addRowSorterListener订阅侦听器来侦听排序事件。

该侦听器的接口为RowSorterListener,该侦听器方法接收RowSorterEvent的实例。当此事件的TypeSorted时,表明:

  

[...]内容已经过重新排序或以某种方式转换。


为了您的理解:传统的JTable(即遵循规范的实现)不会对模型进行排序。相反,将对模型的索引数组进行排序。对于遵循Model / View范式的UI元素来说,这是典型的情况。