aspose file tools*
The moose likes Swing / AWT / SWT and the fly likes JTable sorting for JSE 5.0 Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "JTable sorting for JSE 5.0" Watch "JTable sorting for JSE 5.0" New topic
Author

JTable sorting for JSE 5.0

Jof Gronning
Greenhorn

Joined: Aug 28, 2003
Posts: 3
Need to sort a JTable and the target platform is JSE 5.0
What is the best approach.
Can I use JSE 6.0 TableRowSorter (is this compatible with 5.0)
or do I have to write the code to do this?

Best,
Jof
Pavan Kumar Srinivasan
Greenhorn

Joined: Sep 17, 2008
Posts: 27
I suppose you will have to decorate the existing model with a SortModel or extend the AbstractModel(First approach is definitely preferred)

Since you brought up the idea of sorting/filtering have a look at
Glazed Lists. It helps to accomplish such tasks very easiy.
Rob Spoor
Sheriff

Joined: Oct 27, 2005
Posts: 19722
    
  20

I've written something similar once that only worked with DefaultTableModel. What it did was create an Object[] for each row, add those to a List, sort the List (using a Comparator<Object[]>, remove all rows and add all rows again but then sorted. Not quite elegant, and I'd say inefficient if the table has many rows.

There was also no visual signaling on the JTableHeader about which column was sorted last.


SCJP 1.4 - SCJP 6 - SCWCD 5 - OCEEJBD 6
How To Ask Questions How To Answer Questions
Maneesh Godbole
Saloon Keeper

Joined: Jul 26, 2007
Posts: 10451
    
    8

I always build my table models from List(s) of custom objects.
In 1.5 I used to provide a custom Comparator which used to accept the column index and sort directon which were used by the compare method.
I also used "\u2191" and "\u2193" in my table header renderers to provide visual clues on last sorted column and sort direction.
By this approach, once you call Collections.sort() all you need to do is call fireTableDataChanged() to referesh the UI.
[ October 23, 2008: Message edited by: Maneesh Godbole ]

[How to ask questions] [Donate a pint, save a life!] [Onff-turn it on!]
Jof Gronning
Greenhorn

Joined: Aug 28, 2003
Posts: 3
Hi and thanks all,
This is excellent. I also found some code called TableSorter that uses the Decorator pattern.
 
 
subject: JTable sorting for JSE 5.0