Mit dem AnchorPane-Layout in JavaFX

Ein Ankerscheibe in JavaFX ist ähnlich einer Grenze in Bereich, dass es Ihnen Position Knoten relativ zu einer der Kanten der Scheibe lässt. Allerdings sind hier einige wichtige Unterschiede:

  • In einem Grenzbereich wird die Layoutfläche in fünf verschiedene Bereiche unterteilt: oben, rechts, unten, links und in der Mitte. Ein Ankerscheibe trennt nicht das Layout in verschiedene Bereiche. Stattdessen kann jeder Knoten in dem Layout verknüpft werden - oder verankerte - auf eine oder mehrere der vier Ränder der Layoutfläche. Wenn ein Knoten an einer Kante verankert ist, wird die Ankerscheibe an dieser Kante der Knoten so nah wie möglich zu positionieren, nachdem für die anderen Knoten ermöglicht wird.

  • Ein Knoten kann in mehr als einer Kante verankert werden. Zum Beispiel kann ein Knoten in den oberen und rechten Rand verankert werden, die den Knoten in der oberen rechten Ecke des Layouts platzieren wird.

  • Wenn ein Knoten an entgegengesetzte Kanten (oben und unten oder links und rechts) verankert ist, wird der Knoten in Richtung auf beide Ränder des Layouts gezogen werden. Dies führt zu dem Knoten als die Größe der Layout erhöht gedehnt wird.

  • Mehr als ein Knoten kann an jeder Kante verankert werden. In diesem Fall überlappen sich die Knoten, wie sie es in einem Stapel Fenster.

Die folgende Tabelle zeigt die Konstruktoren und Methoden der AnchorPane Klasse, die Sie einen Ankerbereich erstellen können.

constructorBeschreibung
AnchorPane ()Erstellt eine leere Ankerscheibe.
AnchorPane (Node # 133- Kinder)Erzeugt einen Ankerscheibe mit den angegebenen untergeordneten Knoten.
VerfahrenBeschreibung
ObservableListgetChildren ()Gibt die Auflistung aller untergeordneten Knoten, die addedto der Ankerscheibe gewesen sein. Die Sammlung wird als ObservableList Typ zurückgegeben, die die Methoden enthälthinzufügen und füge alle Hinzu,mit dem Sie fügen einen oder mehrere Knoten in die Liste.
static void setTopAnchor (Node Knoten, doublevalue)Anker den angegebenen Knoten an der oberen Kante. Wertder Versatz von der Kante angibt.
static void setRightAnchor (Node Knoten, doublevalue)Anker den angegebenen Knoten an der rechten Kante. Wertder Versatz von der Kante angibt.
static void setBottomAnchor (Node Knoten, Double-Wert)Anker den angegebenen Knoten an der unteren Kante. Wertder Versatz von der Kante angibt.
static void setLeftAnchor (Node Knoten, doublevalue)Anker den angegebenen Knoten an der linken Kante. Wertder Versatz von der Kante angibt.
Leere setMinHeight (double-Wert)Legt die Mindesthöhe der Ankerscheibe.
Leere setMaxHeight (double-Wert)Legt die maximale Höhe der Ankerscheibe.
Leere setPrefHeight (double-Wert)Legt die bevorzugte Höhe der Ankerscheibe.
Leere setMinWidth (double-Wert)Legt die minimale Breite der Ankerscheibe.
Leere setMaxWidth (double-Wert)Legt die maximale Breite der Ankerscheibe.
Leere setPrefWidth (double-Wert)Legt die bevorzugte Breite des Ankerscheibe.
Leere setPadding (Einschübe Wert)Legt die Polsterung um den Innenkanten des stackpane.

Um einen Ankerscheibe erstellen, rufen Sie die AnchorPane Konstruktor und übergeben Sie die Knoten, die Sie hinzufügen möchten. Beispielsweise:

Rectangle r1 = new Rectangle (400.200) -r1.setFill (Color.LIGHTGRAY) -Rectangle r2 = new Rectangle (200.400) -r2.setFill (Color.DARKGRAY) -AnchorPane Anker = new AnchorPane (R1, R2) -

Hier wird ein Paar Rechtecke, ein 400x200, 200x400 die andere, wird erstellt. Man ist hellgrau, die andere dunkelgrau gefüllt. Dann wird eine Ankerscheibe angelegt und die beiden Rechtecke versetzt.

Dann verwenden Sie die setTopAnchor, setRightAnchor, setBottomAnchor, und setLeftAnchor Methoden, die die Knoten an den Kanten der Ankerscheibe zu verankern. Jede dieser Methoden akzeptiert zwei Parameter: den Knoten, den Sie wollen zu verankern und ein Offset-Wert, dass Sie den Knoten in einem bestimmten Abstand vom Rand lässt verankern.

Zum Beispiel, ein Rechteck zu verankern r1 in den oberen und linken Rand und Rechteck r2 in den oberen und rechten Rand, verwenden Sie die folgenden Zeilen:

anchor.setTopAnchor (R1, 0.0) -anchor.setLeftAnchor (R1, 0.0) -anchor.setTopAnchor (r2, 0.0) -anchor.setRightAnchor (r2, 0,0) -

Im Folgenden wird gezeigt, wie diese Ankerbereich angezeigt wird, wenn in einer Szene angezeigt.

Zwei Rechtecke in einem Ankerbereich angezeigt.
Zwei Rechtecke in einem Ankerbereich angezeigt.

Das Fenster im oberen Teil von Abbildung 1 zeigt, wie dieser Bereich angezeigt wird, wenn es anfänglich angezeigt wird. Hier können Sie sehen, wie das Licht graues Rechteck auf der linken oberen Ecke des Layouts verankert ist, und die dunkelgraue Rechteck auf der rechten oberen Ecke verankert.

Die Ankerscheibe wird zunächst so bemessen, dass sein Inhalt festsitzen. Als Ergebnis überlappt das dunkelgraue Rechteck, das das Licht graues Rechteck. Das Fenster im unteren Teil der Abbildung zeigt, wie das Layout angezeigt wird, wenn der Benutzer das Fenster erstreckt, so dass die Ankerscheibe Layout zu wachsen. Da die Ankerscheibe wird breiter, bleibt die hellgraue Rechteck in der oberen linken Ecke des Layouts platzieren, während die dunkelgraue Rechteck mit der oberen rechten Ecke des Fensters folgt. So trennen sich die Rechtecke.

Menü