JavaFX教程 – JavaFX FlowPane
FlowPane根据可用的水平间距布置一行中的节点当水平空间小于所有节点“宽度”的总和时,将节点包裹到下一行。
默认情况下,FlowPane布局从左到右流动子节点(Pos.TOP_LEFT)。
要更改流向对齐,请调用 setAlignment()方法通过传递类型 Pos 的枚举值。
以下代码创建一个FlowPane布局,以从右到左(Pos.TOP_RIGHT)流动子节点。
FlowPane flowPane = new FlowPane(); flowPane.setAlignment(Pos.TOP_RIGHT); flowPane.getChildren().addAll(...); // child nodes to add.
例子
向流窗格添加按钮
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
/*from w w w .ja va2 s . c o m*/
public class Main extends Application {
@Override
public void start(Stage stage) {
stage.setTitle("HTML");
stage.setWidth(500);
stage.setHeight(500);
Scene scene = new Scene(new Group());
FlowPane flow = new FlowPane();
flow.setVgap(8);
flow.setHgap(4);
flow.setPrefWrapLength(300); // preferred width = 300
for (int i = 0; i < 10; i++) {
flow.getChildren().add(new Button("asdf"));
}
scene.setRoot(flow);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
上面的代码生成以下结果。
实施例2
FlowPane首选宽度允许两列
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.FlowPane;
import javafx.stage.Stage;
//from w w w. j a v a 2 s. c om
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("FlowPane example");
FlowPane flowPane = new FlowPane();
flowPane.setPadding(new Insets(10, 10, 10, 10));
flowPane.setVgap(4);
flowPane.setHgap(4);
flowPane.setPrefWrapLength(210);
Button btn = new Button();
for (int i = 0; i < 8; i++) {
btn = new Button("Button");
btn.setPrefSize(100, 50);
flowPane.getChildren().add(btn);
}
Scene scene = new Scene(flowPane);
primaryStage.setScene(scene);
primaryStage.show();
}
}
上面的代码生成以下结果。

国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码













