Das Problem, an dem ich mich festhielt, ist das Abrufen von TreeView-Knoten, die bestimmte Child-Elemente zum Zusammenfalten/Erweitern enthalten und nicht alle TreeView-Knoten/Eltern. Ich versuchte Rekursion mit einem großen Fehler und konnte nicht realisieren, was die Lösung sein könnte.JavaFX nur TreeView Parents erweitern, die spezifische Child enthalten
Hier ist ein Blick auf meinem Code:
public void setTreeItem(Employee emp, TreeItem<Employee> root_tree) {
if (emp.equals(root_tree.getValue())) {
root_tree.setExpanded(false);
} else {
root_tree.setExpanded(true);
for (TreeItem<Employee> emps : root_tree.getChildren()) {
setTreeItem(emp, emps);
}
}
}
ich zu diesem Punkt zu kommen und gehen kann, nicht weiter. Als Referenz habe ich diese topic ausgecheckt, aber ich konnte die Idee von dieser Lösung nicht wirklich bekommen.
Das sind Bilder zur Demonstration:
Dies ist ein Bild, bevor du für spezifisches Element Überprüfung
und dieses Bild nach für das jeweilige Element Überprüfung (Mary Johnson).
Wie Sie sehen können, geht es durch die gesamte TreeView und erweitert alle TreeView Eltern, aber Mary Johnson ist nicht da.
Können Sie erklären, was Sie zu tun versuchen? Wie sollte der Status des Baumes aussehen, nachdem Sie Ihre (schlecht benannte) 'setTreeItem' Methode aufgerufen haben? Nur der Pfad vom Stamm zum Element, das den angegebenen Wert enthält, sollte erweitert werden, und alles andere ist zusammengebrochen? Oder etwas anderes? –