JavaFX Spalte von Tableview nach Datum sortieren

jimb0p

Erfahrenes Mitglied
Hallo Zusammen,

ich würde gerne eine Tabelle in meiner Anwendung nach eine Spalte sortieren in der ein Datum steht. Jedoch wird diese als String sortiert, weil dort auch ein String drin steht. Was genau muss ich machen damit der Tableview sich nach dem korrekten Datum sortiert?

Gruß
 

jimb0p

Erfahrenes Mitglied
ok ich habe nach langem Probieren eine Lösung gefunden. Hier nur fix die schnipsel auf die es bei mir ankam:

Hier wird der Zelle um die es geht der Timestamp als ObjectProperty<DateTime> zugewiesen, somit habe ich das Datum zum sortieren vermute ich:
Java:
clmnTimestamp.setCellValueFactory(cellData -> cellData.getValue().getTimestamp());

Dann habe ich noch eine CellFactory geschrieben damit der Inhalt nicht dem entspricht wie die DateTime ist:
Java:
clmnTimestamp.setCellFactory(column -> {
            return new TableCell<Logging, DateTime>() {
                @Override
                protected void updateItem(DateTime item, boolean empty) {
                    super.updateItem(item, empty);
                   
                    if (item == null || empty) {
                        setText(null);
                        setStyle("");
                    } else {
                        setText(item.toString("dd.MM.yyyy HH:mm:ss"));
                    }
                }
            };
        });

So funktioniert es korrekt und sieht auch gut aus. Jetzt wäre noch meine Frage ist das ein richtiger Weg, oder geht es noch eleganter?