Tabelle sortieren, mit Ausnahme der letzten Zeile

skorpionking

Mitglied
Hallo,

ich habe eine JTable mit einem AbstractTableModel darauf.
Weiterhin ist für die Tabelle setAutoCreateRowSorter(true) gesetzt.
Das Sortieren klappt soweit ganz gut. Aber ich suche nach einer Möglichkeit, wie ich dem RowSorter sagen kann, dass er bei der Sortierung die letzte Zeile der Tabelle auslassen (also nicht mit sortieren) soll. Kann mir jemand sagen, was ich tun muss, um das zu erreichen?

Danke im Voraus

MFG skorpionking
 
Da gibt's sicher verschiedene Ansätze ... Da die Frage sehr speziell ist, wüßte ich spontan nicht "DIE" beste Lösung (und man muss schon viel mit JTables hantiert haben, um da aus dem Stegreif einen geschickten Ansatz aus dem Ärmel zu schütteln - vielleicht fällt Andre da spontan was ein).
Aber es würde mich wundern, wenn man um die Implementierung eines eigenen RowSorters drumrumkäme. Hast du schon was in der Richtung versucht?
 
Hallo,

das dachte ich mir schon beinahe.
Den Ansatz mit dem eigenen Rowsorter habe ich auch schon überlegt.
Da ich aber nicht ganz genau weiss, wie ich das mit möglichst wenig Code und ohne abzuschreiben umsetze, wollte ich mich hier zuerst nach weiteren Ansätzen erkundigen.

MFG skorpionking
 
Eventuell kannst du die oberen Zeilen vom vorhandenen Sorter sortieren lassen? Dafür kenn ich mich aber mit den Interna nicht genug aus.
 
Ich brauchte mal etwas Vergleichbares. In der letzten Zeile wollte ich eine Summen- und Mittelwertsanzeige realisieren. Ich habe schlussendlich zwei separate Tabellen verwendet, wovon die zweite Tabelle nur die eben beschriebene Statistikzeile enthält. Das funktioniert so recht gut, ist aber sicherlich nicht die sauberste Lösung.
 
Ich hatte kurz in Erwägung gezogen, ob man nicht den Sorter ein "verkleinertes" TableModel geben kann, das einfach an die oberen n-1 Zeilen des echten Modells delegiert, aber das müßte man sich nochmal genauer überlegen. Gut möglich dass es mit einem eigenen RowSorter (bzw. einen RowFilter) eine viel einfachere und elegantere Möglichkeit gibt...
 
@Curry:
Das mit der 2. Tabelle ist eine gute Idee, aber gleichzeitig auch bissl dirty ;-)
Aber letztendlich könnte das evtl. klappen.
Letztendlich wäre mir aber eine elegantere Lösung lieber.

MFG skorpionking
 
Hallo,

schreib dir einfach einen eigenen comparator, wo du den Zeilen Index mitgibst und ob dies dann die letzte Zeile ist kannst du dir dann ermitteln.
wenn das dann wirklich die letzte Zeile ist, kannst du mit den return Werten dies so steuern das sie dann am letzten platz bleibt 😉

ich finde diese Methode wäre recht elegant was meint ihr? :toll:

mfg

Bernd
 

Neue Themen


Zurück
Oben