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

时间:2010-04-17 09:48:25

标签: java swing jtable selection

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

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

我正在使用JDK 6,不管是不是给了小费?

2 个答案:

答案 0 :(得分:17)

基础模型不会改变顺序。只有视图更改。您可以在Sun's tutorial中详细了解相关信息。您将需要使用JTable.convertRowIndexToView()和JTable.convertRowIndexToModel()。

答案 1 :(得分:5)

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