JavaFX - Layoutfenster (Container)
Nachdem wir alle erforderlichen Knoten in einer Szene erstellt haben, ordnen wir sie im Allgemeinen in der richtigen Reihenfolge an.
Diese Anordnung der Komponenten innerhalb des Containers wird als Layout des Containers bezeichnet. Wir können auch sagen, dass wir einem Layout gefolgt sind, da es das Platzieren aller Komponenten an einer bestimmten Position innerhalb des Containers umfasst.
JavaFX bietet mehrere vordefinierte Layouts wie z HBox, VBox, Border Pane, Stack Pane, Text Flow, Anchor Pane, Title Pane, Grid Pane, Flow Panel, usw.
Jedes der oben genannten Layouts wird durch eine Klasse dargestellt, und alle diese Klassen gehören zum Paket javafx.layout. Die benannte KlassePane ist die Basisklasse aller Layouts in JavaFX.
Layout erstellen
Um ein Layout zu erstellen, müssen Sie -
- Knoten erstellen.
- Instanziieren Sie die jeweilige Klasse des erforderlichen Layouts.
- Legen Sie die Eigenschaften des Layouts fest.
- Fügen Sie dem Layout alle erstellten Knoten hinzu.
Knoten erstellen
Erstellen Sie zunächst die erforderlichen Knoten der JavaFX-Anwendung, indem Sie ihre jeweiligen Klassen instanziieren.
Wenn Sie beispielsweise ein Textfeld und zwei Schaltflächen haben möchten, nämlich Spielen und Stoppen in einem HBox-Layout, müssen Sie diese Knoten zunächst wie im folgenden Codeblock gezeigt erstellen.
//Creating a text field
TextField textField = new TextField();
//Creating the play button
Button playButton = new Button("Play");
//Creating the stop button
Button stopButton = new Button("stop");
Instanziieren der jeweiligen Klasse
Instanziieren Sie nach dem Erstellen der Knoten (und dem Ausführen aller Operationen an ihnen) die Klasse des erforderlichen Layouts.
Wenn Sie beispielsweise ein Hbox-Layout erstellen möchten, müssen Sie diese Klasse wie folgt instanziieren.
HBox hbox = new HBox();
Festlegen der Eigenschaften des Layouts
Nach dem Instanziieren der Klasse müssen Sie die Eigenschaften des Layouts mit den entsprechenden Setter-Methoden festlegen.
Beispiel: Wenn Sie im HBox-Layout Platz zwischen den erstellten Knoten festlegen möchten, müssen Sie den Wert für die Eigenschaft mit dem Namen Abstand festlegen. Dies kann mit der Setter-Methode erfolgensetSpacing() wie unten gezeigt -
hbox.setSpacing(10);
Hinzufügen des Formobjekts zur Gruppe
Schließlich müssen Sie das Objekt der Form zur Gruppe hinzufügen, indem Sie es wie unten gezeigt als Parameter des Konstruktors übergeben.
//Creating a Group object
Group root = new Group(line);
Layoutfenster
Im Folgenden finden Sie die verschiedenen von JavaFX bereitgestellten Layoutfenster (Klassen). Diese Klassen sind im Paket vorhandenjavafx.scene.layout.
S.No. | Form & Beschreibung |
---|---|
1 | HBox Das HBox-Layout ordnet alle Knoten in unserer Anwendung in einer einzigen horizontalen Reihe an. Die benannte Klasse HBox des Pakets javafx.scene.layout repräsentiert das Layout des horizontalen Textfelds. |
2 | VBox Das VBox-Layout ordnet alle Knoten in unserer Anwendung in einer einzigen vertikalen Spalte an. Die benannte Klasse VBox des Pakets javafx.scene.layout repräsentiert das vertikale Layout des Textes. |
3 | BorderPane Das Layout des Rahmenbereichs ordnet die Knoten in unserer Anwendung in den Positionen oben, links, rechts, unten und in der Mitte an. Die benannte Klasse BorderPane des Pakets javafx.scene.layout repräsentiert das Rahmenfenster-Layout. |
4 | StackPane Das Stapelfenster-Layout ordnet die Knoten in unserer Anwendung wie in einem Stapel übereinander. Der zuerst hinzugefügte Knoten wird am unteren Rand des Stapels platziert und der nächste Knoten wird oben platziert. Die benannte Klasse StackPane des Pakets javafx.scene.layout repräsentiert das Stapelfensterlayout. |
5 | TextFlow Das Textfluss-Layout ordnet mehrere Textknoten in einem einzigen Fluss an. Die benannte Klasse TextFlow des Pakets javafx.scene.layout repräsentiert das Textflusslayout. |
6 | AnchorPane Das Layout des Ankerbereichs verankert die Knoten in unserer Anwendung in einem bestimmten Abstand vom Bereich. Die benannte Klasse AnchorPane des Pakets javafx.scene.layout repräsentiert das Ankerfenster-Layout. |
7 | TilePane Das Kachelfenster-Layout fügt alle Knoten unserer Anwendung in Form von Kacheln mit einheitlicher Größe hinzu. Die benannte Klasse TilePane des Pakets javafx.scene.layout repräsentiert das TilePane-Layout. |
8 | GridPane Das Layout des Rasterbereichs ordnet die Knoten in unserer Anwendung als Raster aus Zeilen und Spalten an. Dieses Layout ist praktisch, wenn Sie Formulare mit JavaFX erstellen. Die benannte Klasse GridPane des Pakets javafx.scene.layout repräsentiert das GridPane-Layout. |
9 | FlowPane Das Layout des Flussbereichs umschließt alle Knoten in einem Fluss. Ein horizontaler Flussbereich umschließt die Elemente des Bereichs auf seiner Höhe, während ein vertikaler Flussbereich die Elemente in seiner Breite umschließt. Die benannte Klasse FlowPane des Pakets javafx.scene.layout repräsentiert das Layout des Flussbereichs. |