如何使用 JavaFX 创建网格窗格?
javafxobject oriented programmingprogramming更新于 2026/1/8 11:24:17
创建应用程序所需的所有节点后,您可以使用布局排列它们。布局是计算给定空间中对象位置的过程。JavaFX 在 javafx.scene.layout 包中提供了各种布局。
网格窗格
在此布局中,您可以将节点排列为行和列的网格。您可以通过实例化 javafx.scene.layout.GridPane 类在应用程序中创建网格窗格。
您可以使用 setRowIndex() 和 setColumnIndex() 方法在窗格中设置节点位置。
此类具有以下属性 −
alignment −(Pos) 指定网格在窗格尺寸内的位置。
gridLinesVisible − (boolean) 指定是否显示突出显示窗格行和列的线条。
hgap − (双精度)指定网格列之间的水平间隙。
vgap − (双精度)指定网格行之间的垂直间隙。
您可以通过使用各自的 setter 方法为这些属性设置值来自定义网格的外观。
要将节点添加到此窗格,您可以将它们作为构造函数的参数传递,也可以将它们添加到窗格的可观察列表中,如下所示 −
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);
}
}
输出


