如何使用JavaFX创建网格窗格?

网格窗格

在此布局中,您可以将节点布置为行和列的网格。您可以通过实例化javafx.scene.layout.GridPane类在应用程序中创建网格窗格。

您可以使用setRowIndex()setColumnIndex()方法在窗格中设置节点位置。

此类具有以下属性-

  • alignment-(Pos)指定网格在窗格尺寸内的位置。

  • gridLinesVisible-(布尔值)指定是否显示突出显示窗格行和列的行。

  • hgap-(双精度)指定网格列之间的水平间隙。

  • vgap-(双精度)指定网格行之间的垂直间隙。

您可以使用各自的设置方法将值设置为这些属性,从而自定义网格的外观。

要将节点添加到此窗格中,可以将它们作为构造函数的参数传递,也可以将它们添加到窗格的可观察列表中,如下所示:

getChildren().addAll();

示例

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
public class GridLayoutExample extends Application {
   public void start(Stage stage) {
      //创建标签
      Text text1 = new Text("Email");
      Text text2 = new Text("Password");
      //创建文本和密码字段
      TextField textField1 = new TextField();
      PasswordField textField2 = new PasswordField();
      //创建按钮
      Button button1 = new Button("Submit");
      Button button2 = new Button("Clear");
      //创建一个网格窗格
      GridPane gridPane = new GridPane();
      //设置窗格的大小
      gridPane.setMinSize(400, 200);
      //设置填充
      gridPane.setPadding(new Insets(10, 10, 10, 10));
      //设置列之间的垂直和水平间距
      gridPane.setVgap(5);
      gridPane.setHgap(5);
      //设置网格对齐方式
      gridPane.setAlignment(Pos.CENTER);
      //排列网格中的所有节点
      gridPane.add(text1, 0, 0);
      gridPane.add(textField1, 1, 0);
      gridPane.add(text2, 0, 1);
      gridPane.add(textField2, 1, 1);
      gridPane.add(button1, 0, 2);
      gridPane.add(button2, 1, 2);
      //设置舞台
      Scene scene = new Scene(gridPane, 595, 200, Color.BEIGE);
      stage.setTitle("Grid Layout");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

输出结果