JavaFX 的 GridPane
是一种基于网格的布局方式,它允许你将子节点放置在网格的行和列中。GridPane
提供了高度的灵活性来创建复杂的用户界面布局。
以下是 GridPane
的一些基本用法:
-
添加节点到网格:使用
add
方法将子节点添加到特定的行和列。 -
行和列的索引:行和列的索引都是从0开始的。
-
列宽和行高:可以通过
setColumnWidth
和setRowVvalue
方法来设置列宽和行高。 -
对齐方式:可以为每个子节点设置水平和垂直对齐方式。
-
填充和边距:可以为
GridPane
设置填充和边距,以控制子节点之间的空间。 -
网格线:可以通过
setGridLinesVisible
方法来显示或隐藏网格线。 -
权重:可以为列和行设置权重(
setColumnFillWidth
和setRowFillHeight
),以控制它们在可用空间中的占比。
下面是一个 GridPane
的使用案例,演示了如何使用 GridPane
来创建一个简单的表单界面:
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class GridPaneDemo extends Application {
@Override
public void start(Stage primaryStage) {
// 创建 GridPane 实例
GridPane gridPane = new GridPane();
// 设置网格线可见
gridPane.setGridLinesVisible(true);
// 设置填充和边距
gridPane.setPadding(new Insets(10, 10, 10, 10));
gridPane.setHgap(5);
gridPane.setVgap(5);
// 创建标签和按钮,并将它们添加到 GridPane
gridPane.add(new Label("First Name:"), 0, 0);
gridPane.add(new Button("First Name Button"), 1, 0);
gridPane.add(new Label("Last Name:"), 0, 1);
gridPane.add(new Button("Last Name Button"), 1, 1);
gridPane.add(new Label("Email:"), 0, 2);
gridPane.add(new Button("Email Button"), 1, 2);
// 创建场景并设置 GridPane
Scene scene = new Scene(gridPane, 300, 200);
// 设置舞台并显示
primaryStage.setScene(scene);
primaryStage.setTitle("GridPane Demo");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在这个例子中,我们创建了一个 GridPane
,并为它设置了网格线可见、填充和边距。然后,我们创建了几个 Label
和 Button
对象,并将它们添加到 GridPane
的特定行和列中。每个标签和按钮都位于一个单元格内,标签位于第一列,按钮位于第二列。
运行这个程序,你会看到一个窗口,其中包含一个简单的表单布局,标签和按钮被组织在一个3行2列的网格中。通过调整窗口的大小,你可以观察到 GridPane
如何自动调整子节点的大小以适应可用空间。