Forums Register Login

JTable sorting for JSE 5.0

+Pie Number of slices to send: Send
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
+Pie Number of slices to send: Send
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.
+Pie Number of slices to send: Send
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.
+Pie Number of slices to send: Send
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 ]
+Pie Number of slices to send: Send
Hi and thanks all,
This is excellent. I also found some code called TableSorter that uses the Decorator pattern.
Why am I so drawn to cherry pie? I can't seem to stop. Save me tiny ad!
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 2261 times.
Similar Threads
JTable
JTable
JTable
JTable selections
Jtable
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 04:22:18.