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> | ||