Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Keep Track of row index when JTable has been sorted by the user?

Tags:

java

swing

jtable

I have a JTable which has 1st row blank. Now when I sort the table based on a column by clicking on that column then the blank row goes at the bottom. If I insert something in the blank row and do the sorting then the row is placed accordingly. How do I keep track of its row index even when it is sorted. I need to access that row but if user does the sorting then i loose the row index as it is no more the 1st row.

like image 672
nits.kk Avatar asked Nov 11 '10 06:11

nits.kk


1 Answers

Assuming you're using the TableRowSorter stuff added in Java 6, I think what you need to look at are the methods convertRowIndexToModel and convertRowIndexToView in the RowSorter Class. You'd do something like

table.getRowSorter().convertRowIndexToView(0)

to find out which visible row index is actually row index 0 from your model.

Edit: As Tulskiy pointed out in the comments, this may cause a NullPointerException if no row sorter is assigned to the table. Better to use the methods directly on JTable instead, e.g. table.convertRowIndexToView(0)

like image 163
heavi5ide Avatar answered Sep 19 '22 18:09

heavi5ide