javafx 流板

示例

FlowPane根据可用的水平或垂直空间在行或列中布置节点。当水平空间小于所有节点宽度的总和时,它将节点包装到下一行。当垂直空间小于所有节点高度的总和时,它将节点包装到下一列。本示例说明了默认的水平布局:

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception{
        FlowPane root = new FlowPane();
        for (int i=1; i<=15; i++) {
            Button b1=new Button("Button "+String.valueOf(i));
            root.getChildren().add(b1); //用于将按钮添加到根目录
        }
        Scene scene = new Scene(root, 300, 250);
        primaryStage.setTitle("FlowPane Layout");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

默认FlowPane构造函数:

FlowPane root = new FlowPane();

其他FlowPane构造函数:

FlowPane() //默认情况下,使用hgap / vgap = 0创建水平FlowPane布局。
FlowPane(double hgap, double gap) //使用指定的hgap / vgap创建水平FlowPane布局。
FlowPane(double hgap, double vgap, Node... children) //使用指定的hgap / vgap创建水平FlowPane布局。
FlowPane(Node... children) //使用hgap / vgap = 0创建水平FlowPane布局。
FlowPane(Orientation orientation) //创建具有指定方向且hgap / vgap = 0的FlowPane布局。
FlowPane(Orientation orientation, double hgap, double gap) //创建具有指定方向和hgap / vgap的FlowPane布局。
FlowPane(Orientation orientation, double hgap, double vgap, Node... children) //创建具有指定方向和hgap / vgap的FlowPane布局。
FlowPane(Orientation orientation, Node... children) //创建具有指定方向且hgap / vgap = 0的FlowPane布局。

使用父级的add()或addAll()方法将节点添加到布局中Pane:

Button btn = new Button("Demo Button");    
root.getChildren().add(btn); 
root.getChildren().addAll(…);

默认情况下,FlowPane从左到右布置子节点。要更改流对齐方式,请setAlignment()通过传入type的枚举值来调用该方法Pos。

一些常用的流量对齐方式:

root.setAlignment(Pos.TOP_RIGHT);     //对于右上方
root.setAlignment(Pos.TOP_CENTER);    //顶级中心
root.setAlignment(Pos.CENTER);        //中心
root.setAlignment(Pos.BOTTOM_RIGHT);  //对于右下