Swing JTable null values an das Ende verschieben

patrick1982l

Mitglied
Hallo Liebe Java Gemeinde

Ich hab mehrere Stunden damit verbracht im Forum nach eine Lösung zu suchen:rtfm:. Sollte ich jedoch etwas übersehen haben, bitte nicht ans Kreuz nageln.

Mein problem ist wie folgt. Ich möchte das wenn ich die JTable aufsteigend oder absteigend sortieret wird, das immer die Null Values am Ende der Table stehen.

Jedoch hat es den anschein, das null Values nicht vom Comperator verglichen werden.

d.h. so wie es aussieht wird bevor das compare aufgerufen wird überprüft ob einer der beiden Objecte null ist wenn ja wird compare nicht aufgerufen.

Kennt irgend jemand eine besser Möglichkeit, um meine oben beschriebene Anforderung zu erfüllen.



Java:
       TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>();
        
        // Der Sorter muss dem JTable bekannt sein
        table.setRowSorter( sorter );
        
        // ... und der Sorter muss wissen, welche Daten er sortieren muss
        sorter.setModel( model );
 

        sorter.setComparator(0,  new StringComparator());



Java:
public class StringComparator implements Comparator<Object>
{
    
    public int compare(Object o1, Object o2)
    {
        System.out.println("Object 1: " + o1 + " Object 2: " + o2);
        return 0;
    }
    public boolean equals(Object obj) {return this==obj;}
}



Danke schon mal im vorhinein

Schöne Grüße
Patrick
 
Hallo Patrick,

leider gibt es keine einfache Möglichkeit einer Neuimplementierung des DefaultRowSorter, so dass er Nullwerte anders behandelt. Walter Laan veröffentlichte aber einen Hack um Nullwerte an eine vordefinierte Stelle zu platzieren. Du findest ihn in diesem Thread: Sort JTable with an empty Row.

Gruß,
André

PS: herzlich willkommen bei java-forum.org 🙂
 
Zuletzt bearbeitet:

Zurück
Oben