JavaFX - 布局 GridPane

如果我们在应用程序中使用 Grid Pane,则添加到其中的所有节点都将以形成行和列网格的方式排列。使用 JavaFX 创建表单时,此布局非常方便。

javafx.scene.layout 中名为 GridPane 的类表示 GridPane。此类提供 11 个属性,即 −

  • alignment − 此属性表示窗格的对齐方式,您可以使用 setAlignment() 方法设置此属性的值。

  • hgap − 此属性为 double 类型,表示列之间的水平间隙。

  • vgap −此属性为 double 类型,表示行之间的垂直间隙。

  • gridLinesVisible − 此属性为布尔类型。为 true 时,窗格的线条设置为可见。

以下是 JavaFX 网格窗格中的单元格位置 −

(0, 0) (1, 0) (2, 0)
(2, 1) (1, 1) (0, 1)
(2, 2) (1, 2) (0, 2)

示例

以下程序是网格窗格布局的示例。在此,我们使用网格窗格创建表单。

将此代码保存在名为 GridPaneExample.java 的文件中。

import javafx.application.Application; 
import javafx.geometry.Insets; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.layout.GridPane; 
import javafx.scene.text.Text; 
import javafx.scene.control.TextField; 
import javafx.stage.Stage; 

public class GridPaneExample extends Application { 
   @Override 
   public void start(Stage stage) {
        //创建标签 email
        Text text1 = new Text("Email");
        
        //创建标签 password
        Text text2 = new Text("Password");
        
        //创建 email 的文本字段
        TextField textField1 = new TextField();
        
        //创建 password 的文本字段
        TextField textField2 = new TextField();
        
        //创建按钮
        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);
        
        //设置舞台(Stage)标题
        stage.setTitle("Grid Pane Example");
        
        //将场景添加到舞台(Stage)
        stage.setScene(scene);
        
        //显示舞台(Stage)内容
        stage.show();
   }
   public static void main(String args[]){ 
      launch(args); 
   } 
} 

使用以下命令从命令提示符编译并执行保存的 java 文件。

javac GridPaneExample.java 
java GridPaneExample

执行时,上述程序将生成一个 JavaFX 窗口,如下所示。

网格窗格

javafx_layout_panes.html