Fügen Sie Komponenten dynamisch in JavaFX
Aktualisiert: die Frage ist falsch, weil der geringe Wissensstand zu dem Thema. Sorry.
Ich bin versucht, zu erstellen eine kleine Anwendung, die zeigt ein Diagramm, das enthält nodes
und connections
zwischen Ihnen. Beide Knoten und verbindungen sind Komplex, ich meine, Sie kann andere Komponenten, wie labels.
Habe ich einen großen Bereich, die spielt eine Leinwand Rolle. Ich werde das hinzufügen und entfernen von Elemente aus. Das problem ist, dass ich möchte add
oder remove
graph-Elemente dynamisch, mit Tasten oder Kontext-Menü. Art Paint for Graphs
🙂 Und ich habe keine Idee, wie es zu implementieren.
Vor allem, ich brauche dringend Hilfe in dynamical adding/removing mechanism
. Ich wäre für Eure Hilfe sehr dankbar!
- Was meinst du mit "dynamisch"? Fügen Sie einfach die Knoten, um den Bereich der child-Liste genau so, wie man es sich in der start-Methode.
- Problem ist, dass ich definieren Knoten-Eigenschaften über FXML. Wie kann ich definieren Sie die Eigenschaften auf, dass etwas nicht existiert, bis ich erstelle Sie zur Laufzeit? Auch ich will, die Scheibe Scroll-und in diesem Fall kann ich nicht bekommen Liste der Kinder.
- Offensichtlich sind Sie nicht gehen, um diesen Teil in FXML: die Ereignis-Handler für die Taste und Kontextmenü etc werden in Java geschrieben, in der controller. Erstellen Sie einfach die Knoten, und fügen Sie Sie zu den entsprechenden Bereich in der üblichen Weise in den Prozeduren. Es ist wirklich unklar, was Sie eigentlich Fragen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur die child-Liste der Bereich, den Sie hinzufügen möchten Sachen zu, und fügen Sie die Dinge, wenn die entsprechende Aktion ausgeführt wird.
Hinweise:
Wenn Sie möchten, verwenden Sie eine Bereich eher als eine FlowPane, dann Scheibe hat keine interne layout, so müssen Sie auch die layoutX und layoutY Eigenschaften entsprechend, wenn Sie fügen Sie zu dem Bereich.
Wenn Sie möchten, ändern der render-Reihenfolge der Knoten in den Bereich (z.B. welche Knoten gerendert werden, die auf die untere und die Obere), dann Sie können tun, dass durch hinzufügen neuer Knoten an einer geeigneten position in der child-Liste; zum Beispiel
pane.getChildren().add(0, new Circle(10))
hinzufügen wird ein Kreis, der dargestellt wird, unter alle anderen Kinder der Bereich, anstatt an der Spitze.