【问题标题】:Java: Selected rows's index does not changes when sortedJava:选定行的索引在排序时不会改变
【发布时间】:2011-02-09 02:52:18
【问题描述】:

我有一个调用方法的 Jtable table1.setAutoCreateRowSorter(true);。 所以这很好用。 但是我的 JFrame 类中也有一个方法,当我按下按钮时会触发它。它使用此代码获取选定的行索引 int selectedRows[] = this.table1.getSelectedRows();。 并显示所选区间对应的第一行的编辑窗口。

问题是,如果我不点击列的标题(我的意思是我根本不对它们进行排序),我的方法就完美了。但是当我对行进行排序时,行的索引似乎根本没有改变 - 因此导致旧行的编辑窗口在进行任何排序之前最初位于该位置。

我正在使用 JDK 6,任何人都可以给 ma 提示吗?

【问题讨论】:

    标签: java swing jtable selection


    【解决方案1】:

    您需要使用convertRowIndexToView(int)convertRowIndexToModel(int) 来转换模型(基础数据)索引和视图索引。

    【讨论】:

      【解决方案2】:

      底层模型不会改变顺序。只有视图发生变化。您可以在Sun's tutorial 中阅读更多相关信息。您将需要使用 JTable.convertRowIndexToView() 和 JTable.convertRowIndexToModel()。

      【讨论】:

      • 谢谢大家,现在我可以使用table1.getModel().getValueAt(table1.convertRowIndexToView(selectedRows[i]), 0);找到正确的选择值
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多