我有一个Jtable,我在其上调用了该方法
table1.setAutoCreateRowSorter(true);
。
所以这很好用。
但我在我的JFrame类中也有一个方法,当我按下按钮时会触发它。它使用此代码获取选定的行索引
int selectedRows[] = this.table1.getSelectedRows();
。
并显示所选时间间隔内对应的第一行的编辑窗口。
问题是,如果我没有点击列的标题(我的意思是我根本不对它们进行排序),我的方法很完美。但是当我对行进行排序时,行的索引似乎根本没有变化 - 从而导致旧行的编辑窗口最初在进行任何排序之前处于该位置。
我正在使用JDK 6,不管是不是给了小费?
答案 0 :(得分:17)
基础模型不会改变顺序。只有视图更改。您可以在Sun's tutorial中详细了解相关信息。您将需要使用JTable.convertRowIndexToView()和JTable.convertRowIndexToModel()。
答案 1 :(得分:5)
您需要使用convertRowIndexToView(int)
和convertRowIndexToModel(int)
转换模型(基础数据)索引和查看索引。