Unterschiede
Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.
swing:rowsorter-jtable 2013/12/04 15:40 | swing:rowsorter-jtable 2020/01/22 20:59 aktuell | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
[[swing:swing|Java - AWT/Swing]]\\ | [[swing:swing|Java - AWT/Swing]]\\ | ||
====== RowSorter für JTable ====== | ====== RowSorter für JTable ====== | ||
+ | //javax.swing.table.TableRowSorter//\\ | ||
JTable kann Zeilen sortieren. Dazu muss der eingebaute RowSorter aktiviert werden:\\ | JTable kann Zeilen sortieren. Dazu muss der eingebaute RowSorter aktiviert werden:\\ | ||
<code java> | <code java> | ||
Zeile 32: | Zeile 33: | ||
int row = table.getSelectedRow(); | int row = table.getSelectedRow(); | ||
int modelRow = table.getRowSorter().convertRowIndexToView(row); | int modelRow = table.getRowSorter().convertRowIndexToView(row); | ||
+ | </code> | ||
+ | \\ | ||
+ | \\ | ||
+ | Möchte man, dass die Sortierung bereits beim Öffnen der Tabelle durchgeführt wird, so hilft dieser Sourcecode:\\ | ||
+ | <code java> | ||
+ | table.getRowSorter().toggleSortOrder(0); //Sortiert nach der ersten Spalte (Spalte 0) | ||
+ | </code> | ||
+ | \\ | ||
+ | \\ | ||
+ | Natürlich ist es auch möglich einen eigenen RowSorter zu verwenden.\\ | ||
+ | Hier wird nach dem zweiten Buchstaben der Spalte 1 sortiert:\\ | ||
+ | <code java> | ||
+ | TableRowSorter<AddressTableModel> sorter = new TableRowSorter<>(); | ||
+ | sorter.setModel(tm); | ||
+ | sorter.setComparator(1, new Comparator<String>(){ | ||
+ | @Override | ||
+ | public int compare(String o1, String o2){ | ||
+ | if (o1.charAt(1) == o2.charAt(1)) | ||
+ | return 0; | ||
+ | return o1.charAt(1) > o2.charAt(1) ? 1 : -1; } | ||
+ | } | ||
+ | }); | ||
+ | table.setRowSorter(sorter); | ||
</code> | </code> | ||