FlowPane类是JavaFX的一部分。 Flowpane布置其子项的方式使其包裹在Flowpane的边界上。水平流窗格(默认)将按行布局节点,并以流窗格的宽度环绕。垂直流窗格将节点排列成列,并以流窗格的高度包裹。 FlowPane类继承了Pane类。
该类的构造函数:
- FlowPane():创建新的卧式FlowPane布局。
- FlowPane(double h, double v):创建具有指定水平和垂直间隙的新“水平流平”布局。
- FlowPane(double h, double v, Node… c):创建一个新的Horizontal FlowPane布局,并指定水平,垂直间隙和节点。
- FlowPane(Node… c):创建具有指定子级的FlowPane。
- FlowPane(Orientation o):创建具有指定方向的FlowPane
- FlowPane(Orientation o, double h, double v):创建具有指定方向以及指定水平和垂直间隙的FlowPane。
- FlowPane(Orientation o, double h, double v, Node… c):创建具有指定方向,指定水平和垂直间隙以及指定子级的FlowPane。
- FlowPane(Orientation o, Node… c):创建具有指定方向和指定节点的FlowPane。
常用方法:
方法 | 说明 |
---|---|
getAlignment() | 返回窗格的“对齐”值。 |
getHgap() | 返回流窗格的水平间隙。 |
getOrientation() | 返回窗格的方向。 |
getRowValignment() | 获取属性rowValignment的值。 |
getVgap() | 返回流窗格的垂直间隙。 |
setAlignment(Pos v) | 设置窗格的“对齐”值。 |
setHgap(double v) | 设置流窗格的水平间隙。 |
setOrientation(Orientation o) | 设置窗格的方向。 |
setRowValignment(double v) | 设置属性rowValignment的值。 |
setVgap(double v) | 设置流窗格的垂直间隙。 |
以下程序说明了FlowPane类的用法:
- Java程序来创建FlowPane,将标签添加到流程窗格并将其添加到阶段:在此程序中,我们将创建一个FlowPane和5个标签,名称分别为label,label1,label2,label3,label4。通过将标签作为参数传递,将标签添加到flow_pane。将FlowPane设置为场景并将场景添加到舞台。调用show()函数以显示最终结果。
// Java Program to create a FlowPane, // add labels to the flow pane // and add it to the stage import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.stage.Stage; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.canvas.*; import javafx.scene.web.*; import javafx.scene.layout.*; import javafx.scene.shape.*; public class FlowPane_0 extends Application { // launch the application public void start(Stage stage) { try { // set title for the stage stage.setTitle("FlowPane"); // create a labels Label label = new Label("this is FlowPane example"); Label label1 = new Label("label no 1"); Label label2 = new Label("label no 2"); Label label3 = new Label("label no 3"); Label label4 = new Label("label no 4"); // create a FlowPane FlowPane flow_pane = new FlowPane(20.0, 20.0, label, label1, label2, label3, label4); // create a scene Scene scene = new Scene(flow_pane, 400, 300); // set the scene stage.setScene(scene); stage.show(); } catch (Exception e) { System.out.println(e.getMessage()); } } // Main Method public static void main(String args[]) { // launch the application launch(args); } }
输出:
- Java程序创建一个FlowPane来设置其方向,添加标签和按钮并将其添加到舞台上:在此程序中,我们将创建一个FlowPane和一个名为label的Label。通过将标签传递给参数,方向,hgap和vgap值,将标签添加到flow_pane。使用getChildren().add()添加按钮。将FlowPane设置为场景。将场景添加到舞台。调用show()函数以显示最终结果。
// Java Program to create a FlowPane // set its orientation, add labels // and buttons and add it to the stage import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.stage.Stage; import javafx.event.ActionEvent; import javafx.geometry.*; import javafx.scene.canvas.*; import javafx.scene.web.*; import javafx.scene.layout.*; import javafx.scene.shape.*; public class FlowPane_1 extends Application { // launch the application public void start(Stage stage) { try { // set title for the stage stage.setTitle("FlowPane"); // create a label Label label = new Label("this is FlowPane example"); // create a FlowPane FlowPane flow_pane = new FlowPane(Orientation.VERTICAL, 20.0, 20.0, label); // add buttons for (int i = 0; i < 10; i++) { // add nodes to the flow pane flow_pane.getChildren().add(new Button("Button " + (int)(i + 1))); } // create a scene Scene scene = new Scene(flow_pane, 400, 300); // set the scene stage.setScene(scene); stage.show(); } catch (Exception e) { System.out.println(e.getMessage()); } } // Main Method public static void main(String args[]) { // launch the application launch(args); } }
输出:
- Java程序创建一个FlowPane来设置其方向,添加标签和按钮,设置FlowPane的对齐方式,列对齐方式,行对齐方式并将其添加到阶段:在此程序中,我们将创建一个FlowPane和一个名为label的Label。通过将标签传递给参数,方向,hgap和vgap值,将标签添加到flow_pane。现在,使用getChildren().add()添加按钮。将FlowPane设置为场景。使用使用setAlignment(),setColumnHalignment(),setRowValignment()的函数来设置FlowPane的对齐方式。将场景添加到舞台。调用show()函数以显示最终结果。
// Java Program to create a FlowPane set its orientation, // add labels and buttons, set the alignment, column // alignment, row alignment of the FlowPane and add it // to the stage import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.stage.Stage; import javafx.event.ActionEvent; import javafx.geometry.*; import javafx.scene.canvas.*; import javafx.scene.web.*; import javafx.scene.layout.*; import javafx.scene.shape.*; public class FlowPane_2 extends Application { // launch the application public void start(Stage stage) { try { // set title for the stage stage.setTitle("FlowPane"); // create a label Label label = new Label("this is FlowPane example"); // create a FlowPane FlowPane flow_pane = new FlowPane(Orientation.VERTICAL, 20.0, 20.0, label); // add buttons for (int i = 0; i < 10; i++) { // add nodes to the flow pane flow_pane.getChildren().add(new Button("Button " + (int)(i + 1))); } // set alignment of flow pane flow_pane.setAlignment(Pos.CENTER); flow_pane.setColumnHalignment(HPos.CENTER); flow_pane.setRowValignment(VPos.CENTER); // create a scene Scene scene = new Scene(flow_pane, 400, 300); // set the scene stage.setScene(scene); stage.show(); } catch (Exception e) { System.out.println(e.getMessage()); } } // Main Method public static void main(String args[]) { // launch the application launch(args); } }
输出:
注意:以上程序可能无法在在线IDE中运行,请使用离线编译器。
参考:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/FlowPane.html
相关用法
- JavaFX 类 Tab用法及代码示例
- JavaFX 类 Pos用法及代码示例
- JavaFX 类 FileChooser用法及代码示例
- JavaFX 类 TextAlignment用法及代码示例
- JavaFX 类 FontWeight用法及代码示例
- JavaFX 类 DirectoryChooser用法及代码示例
- JavaFX 类 TextFlow用法及代码示例
- JavaFX 类 Popup用法及代码示例
- JavaFX 类 TitledPane用法及代码示例
- JavaFX 类 SplitPane用法及代码示例
- JavaFX 类 ClosePath用法及代码示例
- JavaFX 类 LineTo用法及代码示例
- JavaFX 类 StackPane用法及代码示例
- JavaFX 类 Font用法及代码示例
- JavaFX 类 VLineTo用法及代码示例
注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | FlowPane Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。