RowSorter (Java API): Unterschied zwischen den Versionen
K (1 Versionen) |
K |
||
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | Der | + | Der {{JAPI|RowSorter}} wird verwendet, um irgendeine graphische Tabelle (oder Liste) zu sortieren. Der ''RowSorter'' wird derzeit hauptsächlich von der [[JTable_(Java_API)|JTable]] verwendet, um die Zeilen nach einer oder mehreren Spalten zu sortieren, und um Zeilen auszublenden. Entsprechend wird in diesem Artikel immer davon ausgegangen, dass eine ''JTable'' involviert ist. |
Der ''RowSorter'' ändert nicht direkt etwas an der ''JTable'' oder am [[TableModel_(Java_API)|TableModel]], er bietet nur Informationen, welche Zeile mit welcher vertauscht werden soll. | Der ''RowSorter'' ändert nicht direkt etwas an der ''JTable'' oder am [[TableModel_(Java_API)|TableModel]], er bietet nur Informationen, welche Zeile mit welcher vertauscht werden soll. | ||
− | Bevor man einen ''RowSorter'' implementiert, sollte man einen Blick auf die schon existierende Implementation [[TableRowSorter_(Java_API)|TableRowSorter]] werfen. In den meisten Fällen werden alle benötigten Funktionen schon vom ''TableRowSorter'' abgedeckt. | + | Bevor man einen ''RowSorter'' implementiert, sollte man einen Blick auf die schon existierende Implementation [[TableRowSorter_(Java_API)|TableRowSorter]] werfen, der von der abstrakten Klasse {{JAPI|DefaultRowSorter}}, erbt. In den meisten Fällen werden alle benötigten Funktionen schon vom ''TableRowSorter'' abgedeckt. |
Die [[Methode_(Java)|Methoden]] des ''RowSorters'' lassen sich grob in 3 Gruppen gliedern: | Die [[Methode_(Java)|Methoden]] des ''RowSorters'' lassen sich grob in 3 Gruppen gliedern: | ||
Zeile 10: | Zeile 10: | ||
= Interaktion = | = Interaktion = | ||
− | * Wann immer der Benutzer die Tabelle neu sortieren möchte, wird '''toggleSortOrder''' aufgerufen. Das einzige Argument sagt dem ''RowSorter'', welche Spalte betroffen ist. Nachdem der ''RowSorter'' seine internen Strukturen aktualisiert hat, muss er allfällige [[ | + | * Wann immer der Benutzer die Tabelle neu sortieren möchte, wird '''toggleSortOrder''' aufgerufen. Das einzige Argument sagt dem ''RowSorter'', welche Spalte betroffen ist. Nachdem der ''RowSorter'' seine internen Strukturen aktualisiert hat, muss er allfällige [[RowSorterListener_(Java_API)|RowSorterListener]] über die Veränderung informieren. |
* Die Methoden '''get/setSortKeys''' werden benutzt, um die Sortierungen direkt zu setzen oder abzufragen. Der erste Eintrag der Liste ist der wichtigste, der letzte hingegen der unbedeutendste. Eine ''JTable'' zeichnet meist einen kleinen Pfeil über der Spalte, die vom ersten Eintrag betroffen ist. | * Die Methoden '''get/setSortKeys''' werden benutzt, um die Sortierungen direkt zu setzen oder abzufragen. Der erste Eintrag der Liste ist der wichtigste, der letzte hingegen der unbedeutendste. Eine ''JTable'' zeichnet meist einen kleinen Pfeil über der Spalte, die vom ersten Eintrag betroffen ist. | ||
Zeile 18: | Zeile 18: | ||
* '''getModel''', '''getView/ModelRowCount''' liefern schliesslich zusätzliche Informationen über das Model und die Ansicht. | * '''getModel''', '''getView/ModelRowCount''' liefern schliesslich zusätzliche Informationen über das Model und die Ansicht. | ||
+ | {{Fragen stellen}} | ||
+ | |||
+ | =Weiterführende Artikel= | ||
+ | *[[JTable (Java API) | JTable]] | ||
+ | *[[TableModel (Java API) | TableModel]] | ||
+ | *[[JTableHeader_(Java_API) | JTableHeader]] | ||
+ | *[[TableColumnModel_(Java_API) | TableColumnModel]] | ||
+ | *[[TableCellEditor_(Java_API)| TableCellEditor]] | ||
+ | *[[TableCellRenderer_(Java_API)| TableCellRenderer]] | ||
+ | *[[TableColumn_(Java_API)|TableColumn]] | ||
+ | |||
+ | *[[JTable (Tutorial) | JTable-Tutorial©]] | ||
+ | |||
+ | =Links= | ||
+ | *[http://docs.oracle.com/javase/tutorial/uiswing/components/table.html Oracle Tutorial - How to Use Tables] | ||
+ | |||
+ | [[Kategorie:Java]] | ||
[[Kategorie:Java_API]] | [[Kategorie:Java_API]] | ||
+ | [[Kategorie:Swing]] | ||
+ | [[Kategorie:JTable]] |
Aktuelle Version vom 28. Mai 2019, 13:31 Uhr
Der RowSorter
wird verwendet, um irgendeine graphische Tabelle (oder Liste) zu sortieren. Der RowSorter wird derzeit hauptsächlich von der JTable verwendet, um die Zeilen nach einer oder mehreren Spalten zu sortieren, und um Zeilen auszublenden. Entsprechend wird in diesem Artikel immer davon ausgegangen, dass eine JTable involviert ist.
Der RowSorter ändert nicht direkt etwas an der JTable oder am TableModel, er bietet nur Informationen, welche Zeile mit welcher vertauscht werden soll.
Bevor man einen RowSorter implementiert, sollte man einen Blick auf die schon existierende Implementation TableRowSorter werfen, der von der abstrakten Klasse DefaultRowSorter
, erbt. In den meisten Fällen werden alle benötigten Funktionen schon vom TableRowSorter abgedeckt.
Die Methoden des RowSorters lassen sich grob in 3 Gruppen gliedern:
Inhaltsverzeichnis
Konvertierung
- Die Methode convertRowIndexToView bekommt als Argument eine Zeile des Models, und sagt dem Aufrufer, an welcher Position diese Zeile angezeigt werden soll. Wenn die Zeile garnicht gezeigt werden soll, so gibt diese Methode -1 zurück.
- Die Methode convertRowIndexToView bekommt als Argument die Position an der etwas gezeichnet wird, und sagt dem Aufrufer, welche Zeile dies im Model entspricht.
Interaktion
- Wann immer der Benutzer die Tabelle neu sortieren möchte, wird toggleSortOrder aufgerufen. Das einzige Argument sagt dem RowSorter, welche Spalte betroffen ist. Nachdem der RowSorter seine internen Strukturen aktualisiert hat, muss er allfällige RowSorterListener über die Veränderung informieren.
- Die Methoden get/setSortKeys werden benutzt, um die Sortierungen direkt zu setzen oder abzufragen. Der erste Eintrag der Liste ist der wichtigste, der letzte hingegen der unbedeutendste. Eine JTable zeichnet meist einen kleinen Pfeil über der Spalte, die vom ersten Eintrag betroffen ist.
Information
- Die verschiedenen Methoden rowsInserted/Updated/Removed und allRowsChanged werden automatisch aufgerufen, wenn das benutzte Model verändert wird (der RowSorter muss also keine Observer beim Model registrieren).
- add/removeRowSorterListener registriert oder entfernt einen RowSorterListener. Diese Listener müssen aufgerufen werden, wenn die Sortierreihenfolge verändert wurde.
- getModel, getView/ModelRowCount liefern schliesslich zusätzliche Informationen über das Model und die Ansicht.
Fragen
Das Thema wurde nicht ausreichend behandelt? Du hast Fragen dazu und brauchst weitere Informationen? Lass Dir von uns helfen!
- Besuche uns im Byte-Welt-Forum
- Besuche unseren Chat
Wir helfen dir gerne!
Dir hat dieser Artikel gefallen? Oder Du hast Fehler entdeckt und möchtest zur Berichtigung beitragen? Prima! Schreibe einen Kommentar!
Du musst angemeldet sein, um einen Kommentar abzugeben.