Java:排序时选定行的索引不会改变
我有一个 Jtable,我在其中调用了该方法 table1.setAutoCreateRowSorter(true);
。 所以这很有效。 但我的 JFrame 类中也有一个方法,当我按下按钮时会触发该方法。它使用此代码获取选定的行索引 int selectedRows[] = this.table1.getSelectedRows();
。 并显示所选间隔中对应的第一行的编辑窗口。
问题是,如果我不单击列标题(我的意思是我根本不对它们进行排序),我的方法就可以完美工作。但是当我对行进行排序时,行的索引似乎根本没有改变 - 因此导致旧行的编辑窗口在进行任何排序之前最初位于该位置。
我正在使用 JDK 6,有人可以给我一些建议吗?
I have a Jtable on which I called the methodtable1.setAutoCreateRowSorter(true);
.
So this works on well.
But I also have a methos in my JFrame class which is fired when i push a button. It gets the selected rows indexes using this codeint selectedRows[] = this.table1.getSelectedRows();
.
And displays an edit window for the first row corresponding in the selected interval.
The problem is that if I don't click on column's headers (I mean i don't sorte them at all) my method works perfect. But when I sort the row, the indexes of the rows doesn't seems to change at all - thus resulting an edit window for the old row whicn was initially in that position before making any sort.
I am using JDK 6 could anyonw give ma a tip?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
底层模型不会改变顺序。只是视图发生了变化。您可以在Sun 的教程中了解更多相关信息。您将需要使用 JTable.convertRowIndexToView() 和 JTable.convertRowIndexToModel()。
The underlying model does not change order. Only the view changes. You can read more about this in Sun's tutorial. You will need to use JTable.convertRowIndexToView() and JTable.convertRowIndexToModel().
您需要使用
convertRowIndexToView(int)
和convertRowIndexToModel(int)
来转换模型(底层数据)索引和视图索引。You need to use
convertRowIndexToView(int)
andconvertRowIndexToModel(int)
to convert model (underlying data) indices and view indices.