多读书多实践,勤思考善领悟

JavaFX Layout Panes(Containers)布局窗格(容器)

本文于1660天之前发表,文中内容可能已经过时。

在构建场景中的所有必需节点之后,我们通常会按顺序排列它们。

容器内部件的这种布置称为容器的布局。我们还可以说我们遵循布局,因为它包括将所有组件放置在容器内的特定位置。

JavaFX提供了几种预定义的布局,如HBox,VBox,Border Pane,Stack Pane,Text Flow,Anchor Pane,Title Pane,Grid Pane,Flow Panel等。

上面提到的每个布局都由一个类表示,所有这些类都属于包javafx.layout。名为Pane的类是JavaFX中所有布局的基类。

创建布局

要创建布局,您需要 -

  • 创建节点。
  • 实例化所需布局的相应类。
  • 设置布局的属性。
  • 将所有创建的节点添加到布局中。

创建节点

首先,通过实例化各自的类来创建JavaFX应用程序所需的节点。

例如,如果您想要一个文本字段和两个按钮,即在HBox布局中播放和停止 - 您必须最初创建这些节点,如下面的代码块所示 -

1
2
3
4
5
6
7
8
//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布局,则需要按如下方式实例化此类。

1
HBox hbox = new HBox();

设置布局的属性

在实例化类之后,您需要使用各自的setter方法设置布局的属性。

例如 - 如果要在HBox布局中的已创建节点之间设置空间,则需要将值设置为名为spacing的属性。这可以通过使用setter方法setSpacing()来完成,如下所示 -

1
hbox.setSpacing(10);

将形状对象添加到组

最后,您需要将形状的对象添加到组中,方法是将其作为构造函数的参数传递,如下所示。

1
2
//Creating a Group object  
Group root = new Group(line);

布局窗格

以下是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代表流动窗格布局。