在构建场景中的所有必需节点之后,我们通常会按顺序排列它们.
容器内组件的这种排列称为容器的布局.我们也可以说我们遵循布局,因为它包括将所有组件放在容器中的特定位置.
JavaFX提供了几种预定义的布局,例如 HBox,VBox,Border窗格,堆栈窗格,文本流,锚定窗格,标题窗格,网格窗格,流程面板等
上述每个布局都由一个类表示,所有这些类属于包 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 | Shape&描述 |
---|---|
1 | HBox HBox布局将应用程序中的所有节点排列在一个水平行中. 包 javafx.scene.layout 的名为 HBox 的类表示文本水平框布局. |
2 | VBox VBox布局将我们应用程序中的所有节点排列在一个垂直列中. 包 javafx.scene.layout 的名为 VBox 的类表示文本垂直框布局. |
3 | BorderPane Border Pane布局在我们的应用程序中排列顶部,左侧,r光,底部和中心位置. 包 javafx.scene.layout 的名为 BorderPane 的类表示边框窗格布局. |
4 | StackPane 堆栈窗格布局将我们应用程序中的节点排列在另一个上面喜欢在堆栈中.首先添加的节点放在堆栈的底部,下一个节点放在它的顶部. 包 StackPane 的类 javafx.scene.layout 表示堆栈窗格布局. |
5 | TextFlow 文本流布局在单个流中排列多个文本节点. 包 javafx.scene.layout TextFlow 的类>表示文本流布局. |
6 | AnchorPane Anchor窗格布局锚定节点我们的应用程序距离窗格特定的距离. 包 javafx.scene.layout 的名为 AnchorPane 的类代表Anchor窗格布局. |
7 | TilePane Tile窗格布局以统一大小的磁贴的形式添加应用程序的所有节点. 名为 javafx.scene.layout 的> TilePane 代表TilePane布局. |
8 | GridPane 网格窗格布局将应用程序中的节点排列为行和列的网格.使用JavaFX创建表单时,此布局非常方便. 包 javafx.scene.layout 的名为 GridPane 的类表示GridPane布局. |
9 | FlowPane 流窗格布局包装流中的所有节点.水平流窗格将窗格的元素包裹在其高度,而垂直流窗格将元素包裹在其宽度. 名为 FlowPane 的类package javafx.scene.layout 表示Flow Pane布局. |