C
Camino
Gast
Hallo,
ich hab da ein paar Probleme beim Sortieren meiner JTable. Und zwar hole ich mir Antrags-Daten aus einer Datenbank ins TableModel. Dort liegen die Daten dann als ArrayList<Antrag> vor. Ein Feld ist jedoch ein Fremdschlüssel auf eine andere Tabelle (Semesterdaten). Die Semesterdaten liegen ebenfalls als ArrayList<Semester> vor. Nun wandelt mir das Model beim Anzeigen der Daten in der Spalte die Semester-ID in einen String (Semesterkurzform) um.
Die Tabelle sieht dann etwa so aus:
SoSo 2008 | abgelehnt | 30 Punkte
SoSe 2009 | noch nicht entschieden | 10 Punkte
WiSe 2008/09 | genehmigt | 40 Punkte
... usw.
Die Reihenfolge der Datensätze ist dabei die der Antragsdaten. Nun möchte ich aber die JTable nach den Jahreszahlen und Semesterarten (1. Spalte) sortiert haben. Nach der Semester-ID kann ich das nicht sortieren, da diese nicht unbedingt fortlaufend eingegeben werden. In meiner Klasse Semester gibt es aber die Felder Jahreszahl (z.B. 2009) und Semesterart (z.B. 'W' für Wintersemester), welche als Semesterkurzform dann den String "WiSe 2009/10" zurückliefert.
Eine Möglichkeit wäre evtl., wenn ich schon von der Datenbank eine Abfrage über die beiden Tabellen (Anträge, Semester) machen würde. Dann könnte ich die Daten aber nicht mehr als ArrayList<Antrag> abspeichern und dem Model übergeben, sondern müsste eine neue Klasse erstellen.
Die JTable soll auch nicht über Klick auf die Header sortierbar sein, sondern immer nach der 1. Spalte und auch immer nur absteigend (neueste Semester ganz oben).
Ich komm irgendwie nicht drauf, wie ich das umsetzen kann. Ist ein TableRowSorter mit eigenem Comparator evtl. der richtige Ansatz? Falls mir wer einen Tipp geben könnte...
Gruss
Camino
ich hab da ein paar Probleme beim Sortieren meiner JTable. Und zwar hole ich mir Antrags-Daten aus einer Datenbank ins TableModel. Dort liegen die Daten dann als ArrayList<Antrag> vor. Ein Feld ist jedoch ein Fremdschlüssel auf eine andere Tabelle (Semesterdaten). Die Semesterdaten liegen ebenfalls als ArrayList<Semester> vor. Nun wandelt mir das Model beim Anzeigen der Daten in der Spalte die Semester-ID in einen String (Semesterkurzform) um.
Die Tabelle sieht dann etwa so aus:
SoSo 2008 | abgelehnt | 30 Punkte
SoSe 2009 | noch nicht entschieden | 10 Punkte
WiSe 2008/09 | genehmigt | 40 Punkte
... usw.
Die Reihenfolge der Datensätze ist dabei die der Antragsdaten. Nun möchte ich aber die JTable nach den Jahreszahlen und Semesterarten (1. Spalte) sortiert haben. Nach der Semester-ID kann ich das nicht sortieren, da diese nicht unbedingt fortlaufend eingegeben werden. In meiner Klasse Semester gibt es aber die Felder Jahreszahl (z.B. 2009) und Semesterart (z.B. 'W' für Wintersemester), welche als Semesterkurzform dann den String "WiSe 2009/10" zurückliefert.
Eine Möglichkeit wäre evtl., wenn ich schon von der Datenbank eine Abfrage über die beiden Tabellen (Anträge, Semester) machen würde. Dann könnte ich die Daten aber nicht mehr als ArrayList<Antrag> abspeichern und dem Model übergeben, sondern müsste eine neue Klasse erstellen.
Die JTable soll auch nicht über Klick auf die Header sortierbar sein, sondern immer nach der 1. Spalte und auch immer nur absteigend (neueste Semester ganz oben).
Ich komm irgendwie nicht drauf, wie ich das umsetzen kann. Ist ein TableRowSorter mit eigenem Comparator evtl. der richtige Ansatz? Falls mir wer einen Tipp geben könnte...
Gruss
Camino