当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaFX 类 FlowPane用法及代码示例


FlowPane类是JavaFX的一部分。 Flowpane布置其子项的方式使其包裹在Flowpane的边界上。水平流窗格(默认)将按行布局节点,并以流窗格的宽度环绕。垂直流窗格将节点排列成列,并以流窗格的高度包裹。 FlowPane类继承了Pane类。

该类的构造函数:

  1. FlowPane():创建新的卧式FlowPane布局。
  2. FlowPane(double h, double v):创建具有指定水平和垂直间隙的新“水平流平”布局。
  3. FlowPane(double h, double v, Node… c):创建一个新的Horizo​​ntal FlowPane布局,并指定水平,垂直间隙和节点。
  4. FlowPane(Node… c):创建具有指定子级的FlowPane。
  5. FlowPane(Orientation o):创建具有指定方向的FlowPane
  6. FlowPane(Orientation o, double h, double v):创建具有指定方向以及指定水平和垂直间隙的FlowPane。
  7. FlowPane(Orientation o, double h, double v, Node… c):创建具有指定方向,指定水平和垂直间隙以及指定子级的FlowPane。
  8. 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类的用法:

  1. 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); 
        } 
    }

    输出:

  2. 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); 
    } 
    }

    输出:

  3. 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



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 JavaFX | FlowPane Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。