布局窗格(Layout Panes)
在构建场景中的所有必需节点之后,我们通常会按顺序排列它们。
容器内部件的这种布置称为容器的布局。 我们还可以说我们遵循布局,因为它包括将所有组件放置在容器内的特定位置。
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布局中的已创建节点之间设置空间,则需要将值设置为名为spacing的属性。 这可以通过使用setter方法setSpacing()来完成,如下所示 -
hbox.setSpacing(10);
将形状对象添加到组
最后,您需要将形状的对象添加到组中,方法是将其作为构造函数的参数传递,如下所示。
//Creating a Group object
Group root = new Group(line);
布局窗格
以下是JavaFX提供的各种布局窗格(类)。 这些类存在于包javafx.scene.layout 。
S.No | 形状和描述 |
---|---|
1 | HBox HBox布局将应用程序中的所有节点排列在一个水平行中。 包javafx.scene.layout名为HBox的类表示文本水平框布局。 |
2 | VBox VBox布局将我们应用程序中的所有节点排列在一个垂直列中。 包javafx.scene.layout名为VBox的类表示文本垂直框布局。 |
3 | BorderPane 边框窗格布局将应用程序中的节点排列在顶部,左侧,右侧,底部和中心位置。 包javafx.scene.layout名为BorderPane的类表示边框窗格布局。 |
4 | StackPane 堆栈窗格布局将应用程序中的节点排列在另一个上面,就像在堆栈中一样。 首先添加的节点位于堆栈的底部,下一个节点位于堆栈的顶部。 包javafx.scene.layout名为StackPane的类表示堆栈窗格布局。 |
5 | TextFlow 文本流布局在单个流中排列多个文本节点。 包javafx.scene.layout名为TextFlow的类表示文本流布局。 |
6 | AnchorPane “锚点”窗格布局将应用程序中的节点锚定在距窗格特定距离处。 包javafx.scene.layout名为AnchorPane的类表示Anchor窗格布局。 |
7 | TilePane Tile窗格布局以均匀大小的tile的形式添加应用程序的所有节点。 包javafx.scene.layout名为TilePane的类表示TilePane布局。 |
8 | GridPane 网格窗格布局将应用程序中的节点排列为行和列的网格。 使用JavaFX创建表单时,此布局非常方便。 包javafx.scene.layout名为GridPane的类表示GridPane布局。 |
9 | FlowPane 流窗格布局包装流中的所有节点。 水平流动窗格将窗格的元素包裹在其高度,而垂直流动窗格将元素包裹在其宽度处。 名为FlowPane的类javafx.scene.layout表示Flow Pane布局。 |