Ich habe eine VBox
, die Pane
s enthält. Über die VBox
möchte ich ein anderes Element zeigen (derzeit verwende ich eine Pane
). Dieses Element muss mehrere Pane
s im VBox
überlagern, also setze ich dieses Element zusammen mit dem VBox
innerhalb eines AnchorPane
. Die vollständige Struktur sieht wie folgt aus:JavaFX Autoresize & Auto-Position
HBox
VBox
Label <--- "Friday"
AnchorPane
VBox <--- the VBox with Panes
Pane
...
Pane <--- the Pane over the VBox (red in images)
Das Problem ist, dass, wenn ich die Größe des Fensters, wird der rote Pane
nicht die Größe noch seine Position ändern.
Normale Größe:
Kleine Größe:
Ich möchte die rote Pane
auf der gleichen Linie (3.) starten und sein von der gleich relativ Größe.
ich versuchte, die Pane
‚s prefWidthProperty
und prefHeightProperty
an ihre Mutter Bindung (AnchorPane
). Dies funktioniert für die automatische Größenanpassung.
Für die automatische Positionierung habe ich versucht, die layoutX|Y
Eigenschaften zu binden, die nicht funktioniert haben, weil diese vom System gesetzt sind und ich bekomme die Ausnahme "Bound Wert kann nicht eingestellt werden". Also habe ich versucht, die Pane
unmanaged zu machen, was wiederum die automatische Größenänderung durchbrach, da Änderungen in bevorzugten Eigenschaften in nicht verwalteten Knoten keine Auswirkung haben. Ich habe daran gedacht, widthProperty
und heightProperty
an die Eigenschaften der Eltern zu binden, aber diese sind schreibgeschützt.
Sie die Logik der erforderlichen Versatz implementieren mit Bindungen, um die Dinge synchron zu halten. – Mordechai
Welche Bindungen? Wo setze ich sie ein? – kyrill
Ich habe Ihre Änderung nicht gesehen, als ich sie eingegeben habe. Siehe meine Antwort. – Mordechai