Java:选定行的索引在排序时不会更改

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

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

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

基础模型不会改变顺序。 只有视图更改。 您可以在Sun的教程中阅读更多相关信息。 您将需要使用JTable.convertRowIndexToView()和JTable.convertRowIndexToModel()。

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