我有一个使用 setAutoCreateRowSorter(true)
的 JTable 和一个附加的 RowSorterListener,如下所示,因为我需要在我的应用程序的其他地方对某种 JTable 执行一些操作。
我发现每当我点击列标题进行排序时,JTable 会以正确的顺序重新显示行并调用监听器,但我拉出的 TableModel 始终是原始的排序前表模型。
table.getRowSorter().addRowSorterListener(new RowSorterListener() {
@Override
public void sorterChanged(RowSorterEvent rsevent) {
rsevent.getSource().getModel(); // Nope, original ordering here
table.getModel(); // Same thing
}
};
如何获得新的行排序后顺序,就像现在在 JTable 中显示的那样?
最佳答案
TableModel 中的数据永远不会改变,只有数据的 View 会改变。
如果您希望模型中的数据按照它在表格中的显示顺序显示,那么您只需使用:
table.getValueAt(row, column);
换句话说,您需要遍历所有行和列以获取当前查看顺序的数据。
关于java - 如何获得更新后的排序后 TableModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5176832/