GridPane网格布局

JavaFX 的 GridPane 是一种基于网格的布局方式,它允许你将子节点放置在网格的行和列中。GridPane 提供了高度的灵活性来创建复杂的用户界面布局。

以下是 GridPane 的一些基本用法:

  1. 添加节点到网格:使用 add 方法将子节点添加到特定的行和列。

  2. 行和列的索引:行和列的索引都是从0开始的。

  3. 列宽和行高:可以通过 setColumnWidthsetRowVvalue 方法来设置列宽和行高。

  4. 对齐方式:可以为每个子节点设置水平和垂直对齐方式。

  5. 填充和边距:可以为 GridPane 设置填充和边距,以控制子节点之间的空间。

  6. 网格线:可以通过 setGridLinesVisible 方法来显示或隐藏网格线。

  7. 权重:可以为列和行设置权重(setColumnFillWidthsetRowFillHeight),以控制它们在可用空间中的占比。

下面是一个 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,并为它设置了网格线可见、填充和边距。然后,我们创建了几个 LabelButton 对象,并将它们添加到 GridPane 的特定行和列中。每个标签和按钮都位于一个单元格内,标签位于第一列,按钮位于第二列。

运行这个程序,你会看到一个窗口,其中包含一个简单的表单布局,标签和按钮被组织在一个3行2列的网格中。通过调整窗口的大小,你可以观察到 GridPane 如何自动调整子节点的大小以适应可用空间。

posted @   Jks&  阅读(48)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示