Introdução ao JavaFX GridPane

O JavaFX GridPane é um contêiner que expõe seus filhos em uma grade. Existem certas regras no tamanho das células no GridPane. Ou seja, em uma linha, todas as células terão a mesma altura, enquanto, em uma coluna, todas as células terão a mesma largura. O Java GridPane pode ser instanciado a partir da classe javafx.scene.layout.GridPane. A contagem de colunas e linhas nesse painel será determinada pelos componentes adicionados a ele. Agora, vamos ver a sintaxe do GridPane.

Sintaxe do JavaFX GridPane

A sintaxe do GridPane é mostrada abaixo.

GridPane gp = new GridPane();

Construtores

Os construtores para JavaFX GridPane são os seguintes:

  • GridPane () :

Um layout GridPane será criado com o alinhamento TOP_LEFT e um hgap ou vgap igual a 0.

Propriedades do JavaFX GridPane

O Java GridPane possui várias propriedades. Eles são :

  • alinhamento:

Alinhamento da grade na altura e largura do painel.

  • hgap:

A largura do espaço horizontal entre as colunas.

  • vgap:

Altura do espaço vertical entre as linhas.

  • gridLinesVisible:

Essa propriedade é usada principalmente para fins de depuração. Ou seja, controla se as linhas são mostradas para mostrar as linhas e colunas do Gridpane.

Métodos do JavaFX GridPane

O Java GridPane possui vários métodos que executam diferentes funcionalidades.

Alguns dos métodos mais usados ​​são explicados abaixo.

  • clearConstraints (Nodechild): as restrições GridPane serão removidas do nó filho.
  • computeMinWidth (altura dupla): a largura mínima da região será calculada usando esse método.
  • computeMinHeight (largura dupla): a altura mínima da região será calculada usando esse método.
  • getAlignment (): o valor da propriedade alignment será retornado.
  • setAlignment (Posvalue): o valor da propriedade de alinhamento será definido.
  • getMargin (Nodechild): o valor das restrições de margem será retornado.
  • computePrefWidth (altura dupla): será calculada a largura preferida para a região necessária para a altura especificada.
  • computePrefHeight (largura dupla): será calculada a altura preferida para a região necessária para a largura especificada.

Exemplos para implementar o JavaFX GridPane

Agora, vamos ver diferentes programas JavaFX.

Exemplo 1

Programa Java para demonstrar o painel de grade

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

Resultado

Dois campos de texto com 2 rótulos e um botão são exibidos na execução do código. Esses campos e botões de texto estão em linhas diferentes.

Exemplo 2

Programa Java para demonstrar o painel de grade com linhas e colunas

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

Resultado

Um painel de grade é criado com 6 botões em um formato de matriz 3 × 3. Forma de matriz 3 × 3 significa que 6 botões são colocados em 3 linhas e 3 colunas.

Exemplo 3

Programa Java para demonstrar o painel de grade

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

Resultado

Uma caixa de diálogo será exibida com 2 campos de texto, 1 botão e dois rótulos.

Ao contrário dos programas acima, um manipulador de eventos está presente para lidar com a ação clicando no botão na terceira linha.

Pode-se observar que, ao clicar no botão, é exibido um texto informando que o botão foi pressionado.

Conclusão

No JavaFX, o GridPane apresenta os filhos em forma de grade, onde o número de colunas e linhas será decidido pelo número de componentes adicionados a ele. Para usar esse painel, instancie da classe javafx.scene.layout.GridPane. Mais detalhes sobre o Painel de Grade são discutidos neste documento em detalhes.

Artigos recomendados

Este é um guia para o JavaFX GridPane. Aqui discutimos o Construtor, Métodos e Programa para implementar o JavaFX GridPane. Você também pode consultar os seguintes artigos para saber mais -

  1. Aplicativos JavaFX
  2. Slider JavaFX
  3. Layouts JavaFX
  4. Etiqueta JavaFX
  5. JavaFX VBox | Os 15 principais métodos do JavaFX VBox
  6. Exemplos de menu no JavaFX