Unterschiede

Hier werden die Unterschiede zwischen der gewählten und der aktuellen Version gezeigt.

swing:rowsorter-jtable 2013/12/04 15:36 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 ======
-Sortieren von Zeilen geht mit dem RowSorter:\\+//javax.swing.table.TableRowSorter//\\ 
 +JTable kann Zeilen sortieren. Dazu muss der eingebaute RowSorter aktiviert werden:\\ 
 +<code java> 
 +JTable table = new JTable(new MyTableModel()); 
 +table.setAutoCreateRowSorter(true); 
 +</code>
\\ \\
<html> <html>
Zeile 23: Zeile 28:
</html> </html>
\\ \\
-Wichtig hierbei ist, dass der Index ins Model umgerechnet wird!\\+\\ 
 +Wichtig hierbei ist, dass der Index der sichtbaren Tabelle ins Model umgerechnet wird!\\
<code java> <code java>
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>

Eigene Werkzeuge
Werkzeuge

gratis Counter by GOWEB
seit 9.10.2007