Hallo zusammen
Ich möchte gerne einen Dynamischen Tree Baum erstellen. Die Daten liegen in einer DB und können zur Laufzeit der Applikation beliebig verändert werden(Items kommen hinzu, werden gelöscht oder werden umbennant). Die Items die hinzukommen, können beliebig tief ineinander geschachtelt werden. Eine TreeView mit ihren TreeItems statisch zu erstellen stellt kein Problem dar. Das dynamisch zu lösen bringt mich ins grübeln. Google konnte mir auch nicht weiter helfen. Ich habe schon einiges versucht. Bis jetzt fand ich noch keine Lösung. Mein Problem betrifft das initialisieren des TreeViews mit seinen Items. Wenn ich die Daten aus der Datenbank lese, dann habe ich folgende Listenstruktur:
Jetzt wie erstelle ich aus diesen Daten die Baumstruktur, dass die Verschachtelung stimmt? Wie erwähnt die tiefe der Verschachtelung ist beliebig.
Weiss jemand um Rat.
Statisch würde das so aussehen:
Bildlich dargestellt (Datenbank, Visualisierung) siehe Bild.
Ich möchte gerne einen Dynamischen Tree Baum erstellen. Die Daten liegen in einer DB und können zur Laufzeit der Applikation beliebig verändert werden(Items kommen hinzu, werden gelöscht oder werden umbennant). Die Items die hinzukommen, können beliebig tief ineinander geschachtelt werden. Eine TreeView mit ihren TreeItems statisch zu erstellen stellt kein Problem dar. Das dynamisch zu lösen bringt mich ins grübeln. Google konnte mir auch nicht weiter helfen. Ich habe schon einiges versucht. Bis jetzt fand ich noch keine Lösung. Mein Problem betrifft das initialisieren des TreeViews mit seinen Items. Wenn ich die Daten aus der Datenbank lese, dann habe ich folgende Listenstruktur:
Code:
[
[id, nodeName, parent_id],
[id, nodeName, parent_id],
[id, nodeName, parent_id]
]
Weiss jemand um Rat.
Statisch würde das so aussehen:
Java:
@FXML
private TreeView<String> treeView;
//... code
//... code
private void createTree() {
TreeItem<String> rootItem = new TreeItem<>("default");
TreeItem privat = new TreeItem<String>("privat");
TreeItem gmail = new TreeItem<String>("gmail");
TreeItem gescheaft = new TreeItem<String>("geschäft");
TreeItem sonstiges = new TreeItem<String>("sonstiges");
rootItem.getChildren().addAll(privat, gescheaft, sonstiges);
privat.getChildren().add(gmail);
treeView.setRoot(rootItem);
}
Bildlich dargestellt (Datenbank, Visualisierung) siehe Bild.
Anhänge
Zuletzt bearbeitet: