Introducción a los diseños de JavaFX

Los diseños de la interfaz de usuario son el centro del diseño de la interfaz. Muchos de los marcos de la interfaz gráfica de usuario ofrecen soporte para diseños en forma de API (interfaces de programación de aplicaciones). En JavaFX también, se proporciona una gran cantidad de diseños que ayudan a cumplir muchas de las restricciones para abordar el aspecto y la sensación consistentes. Solo es necesario establecer el número mínimo de parámetros en este caso. Los diseños pueden ser de diferentes tipos y se explica en las siguientes secciones en detalle.

Los 5 diseños principales de JavaFX

Como ya se discutió, los diseños de JavaFX pueden ser de diferentes tipos, como VBox, HBox, BorderPane, FlowPane, StackPane, AnchorPane, TilePane, GridPane, etc. En esta sección, discutiremos cinco de ellos.

1. VBox

VBox ayuda a organizar el nodo en una columna vertical. En esto, la altura predeterminada del área de contenido puede mostrar a los niños en su altura preferida y el ancho predeterminado es el mayor del ancho de los niños. Aunque las ubicaciones no se pueden establecer para los hijos, ya que se calcula automáticamente, se puede controlar hasta cierto punto mediante la personalización de las propiedades de VBox.

Código:

// 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);
)
)

Salida:

Aquí, los 3 botones A, B y C están dispuestos de manera horizontal.

2. HBox

HBox funciona en el concepto opuesto de VBox. Es decir, los nodos se organizarán horizontalmente. El siguiente es un programa que ayuda a comprender HBox.

Código:

// 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);
)
)

Salida:

En este caso, los 3 botones A, B y C están dispuestos de manera horizontal.

3. BorderPane

En esto, la estructura de diseño tiene cinco regiones, como SUPERIOR, INFERIOR, CENTRO, IZQUIERDA y DERECHA.

Código:

// 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);
)
)

Salida:

Aquí, 5 campos de texto se reenvían en las cinco direcciones del panel.

4. FlowPane

FlowPane permite al usuario diseñar los nodos de manera consecutiva y envuelve los nodos en el límite. Aquí, los nodos pueden estar en dirección vertical (columnas) o en dirección horizontal (filas).

Código:

// 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);
)
)

Salida:

5. StackPane

En este diseño, todos los nodos se colocan dentro de una sola pila. Es decir, los nodos se organizan como en una pila, encima de otra.

Código:

// 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);
)
)

Salida:

Conclusión

JavaFX Layouts ayuda a crear el diseño de la interfaz en un aspecto coherente. Los diseños pueden ser de diferentes tipos y pueden elegirse según los requisitos del usuario. En este documento, cinco de los diseños de JavaFX se discuten en detalle.

Artículos recomendados

Esta es una guía para los diseños de JavaFX. Aquí discutimos los 5 diseños principales de JavaFX como VBox, HBox, BorderPane, FlowPane y StackPane junto con ejemplos e implementación de código. También puede consultar los siguientes artículos para obtener más información:

  1. Declaración de ruptura en Java
  2. JList en Java
  3. JPanel en Java
  4. Para Loop en Java
  5. Guía completa de etiqueta JavaFX
  6. Declaración de ruptura en JavaScript
  7. Diseño HTML
  8. Tipos y cómo crear gráficos JavaFx?
  9. ¿Cómo ingresar texto en JavaFX TextField?
  10. Constructores y métodos del botón JavaFx
  11. Los 15 métodos principales de HBox en JavaFX
  12. ¿Cómo crear una casilla de verificación en JavaFX con ejemplos?
  13. JavaFX VBox | Métodos de JavaFX VBox
  14. Diferentes métodos de JavaFX StackPane