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 -
- Aplicativos JavaFX
- Slider JavaFX
- Layouts JavaFX
- Etiqueta JavaFX
- JavaFX VBox | Os 15 principais métodos do JavaFX VBox
- Exemplos de menu no JavaFX