JavaFX Layout Panes(Containers)布局窗格(容器)
本文于2046天之前发表,文中内容可能已经过时。
在构建场景中的所有必需节点之后,我们通常会按顺序排列它们。
容器内部件的这种布置称为容器的布局。我们还可以说我们遵循布局,因为它包括将所有组件放置在容器内的特定位置。
JavaFX提供了几种预定义的布局,如HBox,VBox,Border Pane,Stack Pane,Text Flow,Anchor Pane,Title Pane,Grid Pane,Flow Panel等。
上面提到的每个布局都由一个类表示,所有这些类都属于包javafx.layout。名为Pane的类是JavaFX中所有布局的基类。
创建布局
要创建布局,您需要 -
- 创建节点。
- 实例化所需布局的相应类。
- 设置布局的属性。
- 将所有创建的节点添加到布局中。
创建节点
首先,通过实例化各自的类来创建JavaFX应用程序所需的节点。
例如,如果您想要一个文本字段和两个按钮,即在HBox布局中播放和停止 - 您必须最初创建这些节点,如下面的代码块所示 -
1 | //Creating a text field |
实例化各个类
在创建节点(并完成对它们的所有操作)之后,实例化所需布局的类。
例如,如果要创建Hbox布局,则需要按如下方式实例化此类。
1 | HBox hbox = new HBox(); |
设置布局的属性
在实例化类之后,您需要使用各自的setter方法设置布局的属性。
例如 - 如果要在HBox布局中的已创建节点之间设置空间,则需要将值设置为名为spacing的属性。这可以通过使用setter方法**setSpacing()**来完成,如下所示 -
1 | hbox.setSpacing(10); |
将形状对象添加到组
最后,您需要将形状的对象添加到组中,方法是将其作为构造函数的参数传递,如下所示。
1 | //Creating a Group object |
布局窗格
以下是JavaFX提供的各种布局窗格(类)。这些类存在于包javafx.scene.layout中。
序号 | 形状和描述 |
---|---|
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代表流动窗格布局。 |