Video: JavaFX [48] - LayoutContainer - AnchorPane (German) 2024
Ein -Ankerfenster in JavaFX ähnelt einem Rahmenfenster, in dem Sie Knoten relativ zu einer der Kanten des Fensters positionieren können. Hier sind jedoch einige wichtige Unterschiede:
-
In einem Randbereich ist der Layoutbereich in fünf verschiedene Bereiche unterteilt: oben, rechts, unten, links und in der Mitte. Ein Ankerbereich unterteilt das Layout nicht in verschiedene Bereiche. Stattdessen kann jeder Knoten im Layout an eine oder mehrere der vier Kanten des Layoutbereichs gebunden oder verankert werden. Wenn ein Knoten an einer Kante verankert ist, positioniert der Ankerbereich den Knoten so nah wie möglich an dieser Kante, nachdem andere Knoten berücksichtigt wurden.
-
Ein Knoten kann an mehr als einer Kante verankert werden. Beispielsweise kann ein Knoten an der oberen und rechten Kante verankert werden, wodurch der Knoten in der oberen rechten Ecke des Layouts platziert wird.
-
Wenn ein Knoten an gegenüberliegenden Kanten verankert ist (oben und unten oder links und rechts), wird der Knoten zu beiden Kanten des Layouts gezogen. Dies führt dazu, dass der Knoten gestreckt wird, wenn die Größe des Layouts zunimmt.
-
Mehr als ein Knoten kann an jeder Kante verankert werden. In diesem Fall überlappen sich die Knoten wie in einem Stapelfenster.
Die folgende Tabelle zeigt die Konstruktoren und Methoden der AnchorPane-Klasse, mit der Sie einen Ankerbereich erstellen.
Konstruktor | Beschreibung |
---|---|
AnchorPane () | Erstellt einen leeren Ankerbereich. |
AnchorPane (Node … children) | Erstellt einen Ankerbereich mit den angegebenen untergeordneten Knoten. |
Methode | Beschreibung |
ObservableList
getChildren () |
Gibt die Auflistung aller untergeordneten Knoten zurück, die dem Ankerfenster
hinzugefügt wurden. Die Auflistung wird als ObservableList-Typ zurückgegeben, der die Methoden add und addAll, enthält, mit denen Sie einen oder mehrere Knoten zur Liste hinzufügen können. |
static void setTopAnchor (Knotenknoten, Double
-Wert) |
Verankert den angegebenen Knoten mit der oberen Kante. Wert
gibt den Versatz von der Kante an. |
static void setRightAnchor (Knotenknoten, Double
-Wert) |
Verankert den angegebenen Knoten an der rechten Kante. Wert
gibt den Versatz von der Kante an. |
static void setBottomAnchor (Knotenknoten,
Doppelter Wert) |
Verankert den angegebenen Knoten mit der unteren Kante. Wert
gibt den Versatz von der Kante an. |
static void setLeftAnchor (Knotenknoten, Double
-Wert) |
Verankert den angegebenen Knoten an der linken Kante. Wert
gibt den Versatz von der Kante an. |
void setMinHeight (double value) | Legt die minimale Höhe des Ankerfensters fest. |
void setMaxHeight (double value) | Legt die maximale Höhe des Ankerfensters fest. |
void setPrefHeight (double value) | Legt die bevorzugte Höhe des Ankerfensters fest. |
void setMinWidth (double value) | Legt die minimale Breite des Ankerfensters fest. |
void setMaxWidth (double value) | Legt die maximale Breite des Ankerfensters fest. |
void setPrefWidth (double value) | Legt die bevorzugte Breite des Ankerfensters fest. |
void setPadding (Wert für Einfügung) | Legt die Auffüllung um die inneren Kanten des Stapels
fest. |
Rufen Sie zum Erstellen eines Ankerfensters den AnchorPane-Konstruktor auf und übergeben Sie die Knoten, die Sie hinzufügen möchten. Zum Beispiel:
Rechteck r1 = neues Rechteck (400, 200); r1. setFill (Farbe. LIGHTGRAY); Rechteck r2 = neues Rechteck (200, 400); r2. setFill (Farbe. DARKGRAY); Ankerankeranker = neuer Ankerspiegel (r1, r2);
Hier wird ein Rechteckpaar erstellt, eines 400 × 200, das andere 200 × 400. Das eine ist hellgrau gefüllt, das andere dunkelgrau. Dann wird ein Ankerbereich erstellt und die beiden Rechtecke hinzugefügt.
Anschließend verwenden Sie die Methoden setTopAnchor, setRightAnchor, setBottomAnchor und setLeftAnchor, um die Knoten an den Kanten des Ankerfensters zu verankern. Jede dieser Methoden akzeptiert zwei Parameter: den Knoten, den Sie verankern möchten, und einen Versatzwert, mit dem Sie den Knoten in einem bestimmten Abstand von der Kante verankern können.
Um zum Beispiel das Rechteck r1 am oberen und linken Rand und das Rechteck r2 am oberen und rechten Rand zu verankern, verwenden Sie diese Zeilen:
Anker. setTopAnchor (r1, 0. 0); Anker. setLeftAnchor (r1, 0. 0); Anker. setTopAnchor (r2, 0. 0); Anker. setRightAnchor (r2, 0. 0);
Im Folgenden wird gezeigt, wie dieser Ankerbereich angezeigt wird, wenn er in einer Szene angezeigt wird.
Zwei Rechtecke, die in einem Ankerfenster angezeigt werden.Das Fenster im oberen Teil von Abbildung 1 zeigt, wie dieses Fenster angezeigt wird, wenn es anfangs angezeigt wird. Hier können Sie sehen, wie das hellgraue Rechteck in der oberen linken Ecke des Layouts verankert ist und das dunkelgraue Rechteck in der oberen rechten Ecke verankert ist.
Der Ankerbereich ist anfangs so bemessen, dass sein Inhalt gut passt. Als Ergebnis überlappt das dunkelgraue Rechteck das hellgraue Rechteck. Das Fenster im unteren Teil der Abbildung zeigt, wie das Layout angezeigt wird, wenn der Benutzer das Fenster streckt, wodurch das Anker-Layoutfenster vergrößert werden kann. Wenn das Ankerfenster breiter wird, bleibt das hellgraue Rechteck in der oberen linken Ecke des Layouts, während das dunkelgraue Rechteck der oberen rechten Ecke des Bereichs folgt. Somit trennen sich die Rechtecke.