views:

131

answers:

2

Hello, 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?

+1  A: 

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

Guillaume
+2  A: 

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

Jay Askren
Thanks guys now i can find the correct selected value using `table1.getModel().getValueAt(table1.convertRowIndexToView(selectedRows[i]), 0);`
adrian7