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); //对于右下