Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java: Selected rows's index does not changes when sorted

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?

like image 688
adrian7 Avatar asked Apr 17 '10 09:04

adrian7


2 Answers

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().

like image 94
Jay Askren Avatar answered Nov 16 '22 13:11

Jay Askren


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

like image 28
Guillaume Avatar answered Nov 16 '22 14:11

Guillaume