Introducción a JavaFX GridPane

JavaFX GridPane es un contenedor que presenta a sus hijos en una cuadrícula. Hay ciertas reglas sobre el tamaño de las celdas en GridPane. Es decir, en una fila, todas las celdas tendrán la misma altura, mientras que, en una columna, todas las celdas tendrán el mismo ancho. Java GridPane puede ser instanciado de la clase javafx.scene.layout.GridPane. El recuento de columnas y filas en este panel estará determinado por los componentes que se le agreguen. Ahora, veamos la sintaxis de GridPane.

Sintaxis de JavaFX GridPane

La sintaxis de GridPane es como se muestra a continuación.

GridPane gp = new GridPane();

Constructores

Los constructores para JavaFX GridPane son los siguientes:

  • GridPane () :

Se creará un diseño de GridPane con la alineación TOP_LEFT y un hgap o vgap igual a 0.

Propiedades de JavaFX GridPane

Java GridPane tiene varias propiedades. Son :

  • alineación:

Alineación de cuadrícula dentro del ancho y alto del panel.

  • hgap:

El ancho del espacio horizontal entre las columnas.

  • vgap:

Altura de espacio vertical entre las filas.

  • gridLinesVisible:

Esta propiedad se utiliza principalmente para fines de depuración. Es decir, controla si se muestran líneas para mostrar las filas y columnas de Gridpane.

Métodos de JavaFX GridPane

Java GridPane tiene varios métodos que realizan diferentes funcionalidades.

Algunos de los métodos comúnmente utilizados se explican a continuación.

  • clearConstraints (Nodechild): las restricciones de GridPane se eliminarán del nodo secundario.
  • computeMinWidth (doble altura): el ancho mínimo de la región se calculará utilizando este método.
  • computeMinHeight (doble ancho): la altura mínima de la región se calculará utilizando este método.
  • getAlignment (): se devolverá el valor de la propiedad de alineación.
  • setAlignment (Posvalue): se establecerá el valor de la propiedad de alineación.
  • getMargin (Nodechild): se devolverá el valor de las restricciones de margen.
  • computePrefWidth (doble altura): se calculará el ancho preferido para la región que se necesita para la altura dada.
  • computePrefHeight (doble ancho): se calculará la altura preferida para la región que se necesita para el ancho dado.

Ejemplos para implementar JavaFX GridPane

Ahora, veamos diferentes programas JavaFX.

Ejemplo 1

Programa Java para demostrar el panel de cuadrícula

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
public class JavaFXGridPaneExample extends Application (
//application starts at this point
@Override
public void start(Stage s) throws Exception (
//create label 1
Label lbl1=new Label("Name of the Guardian");
//create label 2
Label lbl2=new Label("Your name (IN CAPITALS ) ");
//create textfield 1
TextField t1=new TextField();
//create textfield 2
TextField t2=new TextField();
//create a button
Button b=new Button ("Click me ! !");
//create gridpane
GridPane gp=new GridPane();
//create scene
Scene sc = new Scene(gp, 500, 300);
//first row
gp.addRow(0, lbl1, t1);
//second row
gp.addRow(1, lbl2, t2);
//third row
gp.addRow(2, b);
//set scene
s.setScene(sc);
//display result
s.show();
)
//main method
public static void main(String() args) (
launch(args);
)
)

Salida

Se muestran dos campos de texto con 2 etiquetas y un botón al ejecutar el código. Estos campos de texto y botones están en diferentes filas.

Ejemplo # 2

Programa Java para demostrar el panel de cuadrícula con filas y columnas

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
//class that extends application class
public class JavaFXGridPaneExample extends Application (
//application starts at this point
@Override
public void start(Stage s) throws Exception (
//set title
s.setTitle("GridPane Example");
//create buttons
Button b1 = new Button("This is Button A");
Button b2 = new Button("This is Button B");
Button b3 = new Button("This is Button C");
Button b4 = new Button("This is Button D");
Button b5 = new Button("This is Button E");
Button b6 = new Button("This is Button F");
//create grid pane
GridPane gp = new GridPane();
//add rows and columns to the pane
gp.add(b1, 0, 0, 1, 1);
gp.add(b4, 0, 1, 1, 1);
gp.add(b2, 2, 0, 1, 1);
gp.add(b6, 1, 1, 1, 1);
gp.add(b3, 1, 0, 1, 1);
gp.add(b5, 2, 1, 1, 1);
//create scene
Scene sc = new Scene(gp, 700, 100);
//set scene
s.setScene(sc);
//display the result
s.show();
)
//main method
public static void main(String() args) (
Application.launch(args);
)
)

Salida

Se crea un panel de cuadrícula con 6 botones en forma de matriz 3 × 3. La forma de matriz 3 × 3 significa que se colocan 6 botones en 3 filas y 3 columnas.

Ejemplo # 3

Programa Java para demostrar el panel de cuadrícula

import java.awt.Color;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
//class that extends Application class
public class JavaFXGridPaneExample extends Application (
//application starts at this point
@Override
public void start(Stage s) throws Exception (
//create label 1
Label lbl1=new Label("Name of the Guardian");
//create label 2
Label lbl2=new Label("Your name (IN CAPITALS ) ");
//create textfield 1
TextField t1=new TextField();
//create textfield 2
TextField t2=new TextField();
//create a button
Button b=new Button ("Click me ! !");
//create gridpane
GridPane gp=new GridPane();
//create hbox
HBox hb = new HBox(10);
//set alignment for hbox
hb.setAlignment(Pos.BOTTOM_RIGHT);
//add the children
hb.getChildren().add(b);
gp.add(hb, 1, 4);
//create text
final Text actn = new Text();
gp.add(actn, 1, 6);
//on clicking the button
b.setOnAction(new EventHandler() (
//event that has to be triggered
@Override
public void handle(ActionEvent ev) (
//display text when the button is clicked
actn.setText("Click me button pressed");
)
));
//create scene
Scene sc = new Scene(gp, 500, 300);
//first row
gp.addRow(0, lbl1, t1);
//second row
gp.addRow(1, lbl2, t2);
//third row
gp.addRow(2, b);
//set scene
s.setScene(sc);
//display result
s.show();
)
//main method
public static void main(String() args) (
launch(args);
)
)

Salida

Aparecerá un cuadro de diálogo con 2 campos de texto, 1 botón y dos etiquetas.

A diferencia de los programas anteriores, un controlador de eventos está presente para manejar la acción al hacer clic en el botón en la tercera fila.

Se puede ver que al hacer clic en el botón, se muestra un texto que presiona el botón.

Conclusión

En JavaFX, GridPane presenta los elementos secundarios en forma de cuadrícula donde el número de columnas y filas se decidirá por el número de componentes agregados en él. Para utilizar este panel, cree una instancia de la clase javafx.scene.layout.GridPane. Más detalles sobre el Panel de cuadrícula se discuten en este documento en detalle.

Artículos recomendados

Esta es una guía de JavaFX GridPane. Aquí discutimos el Constructor, los Métodos y el Programa para implementar JavaFX GridPane. También puede consultar los siguientes artículos para obtener más información:

  1. Aplicaciones JavaFX
  2. Control deslizante JavaFX
  3. Diseños JavaFX
  4. Etiqueta JavaFX
  5. JavaFX VBox | Los 15 métodos principales de JavaFX VBox
  6. Ejemplos de menú en JavaFX