JavaFX - 布局窗格(容器)
-
简述
在一个场景中构建完所有需要的节点后,我们一般会按顺序排列它们。容器内组件的这种排列称为容器的布局。我们也可以说我们遵循了一种布局,因为它包括将所有组件放置在容器内的特定位置。JavaFX 提供了几种预定义的布局,例如 HBox, VBox, Border Pane, Stack Pane, Text Flow, Anchor Pane, Title Pane, Grid Pane, Flow Panel, 等等。上面提到的每个布局都由一个类表示,所有这些类都属于包 javafx.layout. 类名为Pane 是 JavaFX 中所有布局的基类。 -
创建布局
要创建布局,您需要 -- 创建节点。
- 实例化所需布局的相应类。
- 设置布局的属性。
- 将所有创建的节点添加到布局中。
-
创建节点
首先,通过实例化它们各自的类来创建 JavaFX 应用程序所需的节点。例如,如果您想要一个文本字段和两个按钮,即在 HBox 布局中播放和停止 - 您必须首先创建这些节点,如以下代码块所示 -//Creating a text field TextField textField = new TextField(); //Creating the play button Button playButton = new Button("Play"); //Creating the stop button Button stopButton = new Button("stop");
-
实例化相应的类
创建节点(并完成对它们的所有操作)后,实例化所需布局的类。例如,如果要创建 Hbox 布局,则需要按如下方式实例化此类。HBox hbox = new HBox();
-
设置布局的属性
实例化该类后,您需要使用它们各自的 setter 方法设置布局的属性。例如 - 如果要在 HBox 布局中创建的节点之间设置空间,则需要将值设置为名为间距的属性。这可以通过使用 setter 方法来完成setSpacing() 如下图所示 -hbox.setSpacing(10);
-
将形状对象添加到组
最后,您需要将形状的对象作为构造函数的参数传递给组,如下所示。//Creating a Group object Group root = new Group(line);
-
布局窗格
以下是 JavaFX 提供的各种布局窗格(类)。这些类存在于包中javafx.scene.layout.序号 形状和描述 1 盒子 HBox 布局将我们应用程序中的所有节点排列在一个水平行中。类名为 HBox 包裹的 javafx.scene.layout 表示文本水平框布局。2 视箱 VBox 布局将我们应用程序中的所有节点排列在一个垂直列中。类名为 VBox 包裹的 javafx.scene.layout 表示文本垂直框布局。3 边框 Border Pane 布局将我们应用程序中的节点排列在顶部、左侧、右侧、底部和中心位置。类名为 BorderPane 包裹的 javafx.scene.layout 表示边框窗格布局。4 堆栈面板 堆栈窗格布局将我们应用程序中的节点排列在另一个顶部,就像在堆栈中一样。首先添加的节点放置在堆栈的底部,下一个节点放置在堆栈的顶部。类名为 StackPane 包裹的 javafx.scene.layout 表示堆栈窗格布局。5 文本流 文本流布局在单个流中排列多个文本节点。类名为 TextFlow 包裹的 javafx.scene.layout 表示文本流布局。6 锚定面板 Anchor 窗格布局将应用程序中的节点锚定在距窗格特定距离处。类名为 AnchorPane 包裹的 javafx.scene.layout 表示锚窗格布局。7 平铺面板 Tile Pane 布局以统一大小的图块的形式添加了我们应用程序的所有节点。类名为 TilePane 包裹的 javafx.scene.layout 表示 TilePane 布局。8 网格面板 网格窗格布局将我们应用程序中的节点排列为行和列的网格。这种布局在使用 JavaFX 创建表单时非常方便。类名为 GridPane 包裹的 javafx.scene.layout 表示 GridPane 布局。9 流窗格 流窗格布局将所有节点包装在一个流中。水平流动窗格以其高度包裹窗格的元素,而垂直流动窗格以其宽度包裹元素。类名为 FlowPane 包裹的 javafx.scene.layout 表示流窗格布局。