JavaFX FlowPane
2018-01-09 19:24 更新
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(); } }
上面的代码生成以下结果。
以上内容是否对您有帮助:
更多建议: