java - 如何获得更新后的排序后 TableModel?

标签 java swing sorting jtable

我有一个使用 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/

相关文章:

java - 未正确定义ubuntu java_home上的maven2

java - 不应通过注入(inject)容器错误来解决此问题

java - 如何将 jTextPane 中所有突出显示的单词更改为 jTextField 中给出的单词?

java - 试图实现选择排序但它不会工作

java - 我正在尝试用 Java 为评估问题编写一个天真的搜索代码,但我不完全确定如何去做

Javascript:如何按其中一个字段中的值对记录数组进行排序?

java - 没有证书的两个对等点之间的安全链接?

java - 从 JMF 中的视频捕获中读取原始数据

Java 用方法改变 JButton 颜色

java swing 复选框 java swing