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