Java JTable中的选定行以及排序

Java JTable中的选定行以及排序,java,swing,jtable,tablerowsorter,Java,Swing,Jtable,Tablerowsorter,我对JTable有一个非常奇怪的问题 我将数据从数据库放入JTable。当用户双击任何单元格时,它会复制用户双击的行的第一列的单元格内容。到目前为止,它工作得很好 当用户通过单击标题对JTable进行排序时,就会出现问题。当表被排序后,现在当用户双击任何行时,它不知道当前存储在该行第一列上的内容。当JTable未排序时,它复制该行第一列中最初存储的内容 有什么想法吗?也尝试对JTable TableModel数据进行排序。Jtable->TableModel是保存实际数据的模型。JTable只是

我对JTable有一个非常奇怪的问题

我将数据从数据库放入JTable。当用户双击任何单元格时,它会复制用户双击的行的第一列的单元格内容。到目前为止,它工作得很好

当用户通过单击标题对JTable进行排序时,就会出现问题。当表被排序后,现在当用户双击任何行时,它不知道当前存储在该行第一列上的内容。当JTable未排序时,它复制该行第一列中最初存储的内容


有什么想法吗?

也尝试对JTable TableModel数据进行排序。Jtable->TableModel是保存实际数据的模型。JTable只是一个视图。

如“使用分类器时,请始终记住转换单元格坐标”中所述。很可能,您在事件处理程序中忽略了这一点。

问题:

这里的问题是,您得到的是
JTable table model
中的初始行索引,而不是表视图中显示的相关行索引

解决方案:

您可以将显示的已排序jTable的索引与数据模型中的相关索引进行映射,使用它可以在视图中输入行索引,并返回模型中相应行的索引

假设您有以下jTable:

TableModel myModel = createMyTableModel();
JTable table = new JTable(myModel);
table.setRowSorter(new TableRowSorter(myModel));
然后循环遍历模型索引,并对每个索引使用此方法,以在
表model
中获得相应的索引:

table.getRowSorter().convertRowIndexToModel(0); // index 0 here

请把你的密码寄出去好吗?到目前为止你试过什么?你是怎么做到的?