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

发布于 2024-08-29 17:36:37 字数 369 浏览 5 评论 0原文

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

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

我正在使用 JDK 6,有人可以给我一些建议吗?

I have a Jtable on which I called the method
table1.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 code
int 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

阿楠 2024-09-05 17:36:37

底层模型不会改变顺序。只是视图发生了变化。您可以在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().

菊凝晚露 2024-09-05 17:36:37

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

You need to use convertRowIndexToView(int) and convertRowIndexToModel(int) to convert model (underlying data) indices and view indices.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文