在表上显示新的行顺序后,我需要知道 JTable 何时已排序。
我尝试过:
getModel().addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
System.out.println("change");
}
});
但是排序后似乎没有调用方法tableChanged(TableModelEvent e)
。
最佳答案
JTable 中的排序和相关事件由 RowSorter 处理。可以使用 JTable.setRowSorter 设置它们.
RowSorter 允许您通过使用 RowSorter.addRowSorterListener 订阅监听器来监听排序事件。 .
该监听器的接口(interface)为 RowSorterListener ,监听器方法接收 RowSorterEvent 的实例。当 Type本次 Activity 的信息是 Sorted ,这表明:
<小时/>[...] the contents have been newly sorted or transformed in some way.
为了您的理解:传统的 JTable(即遵循规范的实现)不会对模型进行排序。相反,模型的索引数组会被排序。这对于遵循模型/ View 范例的 UI 元素来说是典型的。
关于java - 如何知道 JTable 何时已排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56392944/