Einführung in JavaFX-Layouts

Benutzeroberflächenlayouts sind das Zentrum des Oberflächendesigns. Viele der Frameworks für grafische Benutzeroberflächen bieten Unterstützung für Layouts in Form von APIs (Application Programming Interfaces). In JavaFX wird auch eine Vielzahl von Layouts bereitgestellt, mit denen viele der Einschränkungen erfüllt werden können, um das einheitliche Erscheinungsbild zu gewährleisten. In diesem Fall muss nur die minimale Anzahl von Parametern eingestellt werden. Layouts können unterschiedlichen Typs sein und werden in den folgenden Abschnitten ausführlich erläutert.

Top 5 JavaFX-Layouts

Wie bereits erläutert, können die Layouts von JavaFX verschiedene Typen haben, z. B. VBox, HBox, BorderPane, FlowPane, StackPane, AnchorPane, TilePane, GridPane usw. In diesem Abschnitt werden fünf davon behandelt.

1. VBox

VBox hilft beim Organisieren des Knotens in einer vertikalen Spalte. In diesem Fall kann die Standardhöhe des Inhaltsbereichs die untergeordneten Elemente in der bevorzugten Höhe anzeigen, und die Standardbreite ist die größte der untergeordneten Elemente. Auch wenn die Speicherorte für die untergeordneten Elemente nicht festgelegt werden können, da sie automatisch berechnet werden, können sie in gewissem Umfang durch Anpassen der VBox-Eigenschaften gesteuert werden.

Code:

// Java Program to create a VBox
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class JFXLayouts extends Application (
// start method helps in launching the application
public void start(Stage stage)
(
// Title set
stage.setTitle("Example for VBox");
// VBox creation
VBox vb = new VBox(10);
// Label creation
Label lb = new Label("this is VBox example");
// Add the created label to vbox
vb.getChildren().add(lb);
// add the buttons to VBox
vb.getChildren().add(new Button("Click A"));
vb.getChildren().add(new Button("Click B"));
vb.getChildren().add(new Button("Click C"));
// Scene creation
Scene scene = new Scene(vb, 300, 300);
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Ausgabe:

Hier sind 3 Tasten A, B und C horizontal angeordnet.

2. HBox

HBox arbeitet nach dem gegenteiligen Konzept von VBox. Das heißt, die Knoten werden horizontal angeordnet. Im Folgenden finden Sie ein Programm, das zum Verständnis der HBox beiträgt.

Code:

// Java Program to create an HBox
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class JFXLayouts extends Application (
// start method helps in launching the application
public void start(Stage stage)
(
// Title set
stage.setTitle("Example for HBox");
// HBox creation
HBox hb = new HBox(10);
// Label creation
Label lb = new Label("this is HBox example");
// Add the created label to Hbox
hb.getChildren().add(lb);
// add the buttons to Hbox
hb.getChildren().add(new Button("Click A"));
hb.getChildren().add(new Button("Click B"));
hb.getChildren().add(new Button("Click C"));// Scene creation
Scene scene = new Scene(hb, 300, 300);
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Ausgabe:

In diesem Fall sind 3 Tasten A, B und C horizontal angeordnet.

3. BorderPane

In dieser Layoutstruktur gibt es fünf Bereiche wie OBEN, UNTEN, MITTE, LINKS und RECHTS.

Code:

// Java Program to create an BorderPane
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.stage.Stage;
public class JFXLayouts extends Application (
// start method helps in launching the application
public void start(Stage stage)
(
BorderPane bp = new BorderPane();
bp.setTop(new TextField("A-Top"));
bp.setBottom(new TextField("B-Bottom"));
bp.setLeft(new TextField("C-Left"));
bp.setRight(new TextField("D-Right"));
bp.setCenter(new TextField("E-Center"));// Scene creation
Scene scene = new Scene(bp);// Title set
stage.setTitle("Example for BorderPane");
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Ausgabe:

Hier werden 5 Textfelder erneut in die fünf Richtungen des Fensters gesendet.

4. FlowPane

Mit FlowPane kann der Benutzer die Knoten nacheinander anordnen und die Knoten an der Grenze umbrechen. Hier können die Knoten in vertikaler Richtung (Spalten) oder horizontaler Richtung (Zeilen) sein.

Code:

// Java Program to create a flowpane
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.scene.shape.Sphere;
import javafx.stage.Stage;
public class JFXLayouts extends Application (
// start method helps in launching the application
public void start(Stage stage)
(
//create buttons
Button b1 = new Button("Button A");
Button b2 = new Button("Button B");
Button b3 = new Button("Button C");
Button b4 = new Button("Button D");
//Flow Pane creation
FlowPane fp = new FlowPane();
//Set horizontal gap
fp.setHgap(25);
//Set margin
fp.setMargin(b1, new Insets(20, 0, 20, 20));
ObservableList list = fp.getChildren();
//Add nodes to the flow pane
list.addAll(b1, b2, b3, b4);
// Scene creation
Scene scene = new Scene(fp);
// Title set
stage.setTitle("Example for BorderPane");
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Ausgabe:

5. StackPane

In diesem Layout befinden sich alle Knoten in einem Stapel. Das heißt, Knoten sind wie in einem Stapel übereinander angeordnet.

Code:

// Java Program to create a flowpane
import javafx.application.Application;
import javafx.scene.shape.Sphere;
import javafx.collections.ObservableList;
import javafx.scene.text.Font;
import javafx.geometry.Insets;
import javafx.scene.text.FontWeight;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Circle;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.paint.Color;
public class JFXLayouts extends Application (
@Override
public void start(Stage stage) (
//draw a sphere
Sphere sph = new Sphere(50);
//text creation
Text t = new Text("DEMO");
//Set font of the text
t.setFont(Font.font(null, FontWeight.BOLD, 13));
//Set color of the text
t.setFill(Color.RED);
//set position of the text
t.setX(20);
t.setY(50);
//Create a Stackpane
StackPane sp = new StackPane();
ObservableList list = sp.getChildren();
//Add nodes to the pane
list.addAll( sph, t);
// Scene creation
Scene scene = new Scene(sp);
// Title set
stage.setTitle("Example for BorderPane");
// Scene setting
stage.setScene(scene);
stage.show();
)
// Main Method
public static void main(String args())
(
//method to launch the JavaFX application
launch(args);
)
)

Ausgabe:

Fazit

Mit JavaFX Layouts können Sie das Oberflächendesign in einem einheitlichen Erscheinungsbild erstellen. Layouts können von unterschiedlichem Typ sein und können basierend auf den Anforderungen des Benutzers ausgewählt werden. In diesem Dokument werden fünf der JavaFX-Layouts ausführlich beschrieben.

Empfohlene Artikel

Dies ist eine Anleitung zu JavaFX-Layouts. Hier diskutieren wir die Top 5 Layouts von JavaFX wie VBox, HBox, BorderPane, FlowPane und StackPane zusammen mit Beispielen und Code-Implementierung. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Break-Anweisung in Java
  2. JList in Java
  3. JPanel in Java
  4. Für Schleife in Java
  5. Komplette Anleitung zu JavaFX Label
  6. Break-Anweisung in JavaScript
  7. HTML-Layout
  8. Typen und wie erstelle ich JavaFx-Diagramme?
  9. Wie kann ich in JavaFX TextField Text eingeben?
  10. Konstruktoren und Methoden von JavaFx Button
  11. Top 15 Methoden der HBox in JavaFX
  12. Wie erstelle ich ein Kontrollkästchen in JavaFX mit Beispielen?
  13. JavaFX VBox | Methoden der JavaFX VBox
  14. Verschiedene Methoden von JavaFX StackPane