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