Hướng dẫn sử dụng JavaFX FlowPane Layout
Xem thêm các chuyên mục:
FlowPane là một bộ chứa (Container), nó có thể chứa các Control hoặc các bộ chứa khác. Nó sắp xếp các thành phần con liên tiếp nhau trên một dòng, và tự động đẩy phần tử con xuống dòng tiếp theo nếu dòng hiện tại không còn chỗ trống.


FlowPaneDemo.java
package org.o7planning.javafx.flowpane; import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; import javafx.scene.control.RadioButton; import javafx.scene.control.TextField; import javafx.scene.layout.FlowPane; import javafx.stage.Stage; public class FlowPaneDemo extends Application { @Override public void start(Stage primaryStage) throws Exception { FlowPane root = new FlowPane(); root.setHgap(10); root.setVgap(20); root.setPadding(new Insets(15,15,15,15)); // Button 1 Button button1= new Button("Button1"); root.getChildren().add(button1); // Button 2 Button button2 = new Button("Button2"); button2.setPrefSize(100, 100); root.getChildren().add(button2); // TextField TextField textField = new TextField("Text Field"); textField.setPrefWidth(110); root.getChildren().add(textField); // CheckBox CheckBox checkBox = new CheckBox("Check Box"); root.getChildren().add(checkBox); // RadioButton RadioButton radioButton = new RadioButton("Radio Button"); root.getChildren().add(radioButton); Scene scene = new Scene(root, 550, 250); primaryStage.setTitle("FlowPane Layout Demo"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Chạy ví dụ:

Sử dụng JavaFX Scane Builder bạn dễ dàng thiết kế giao diện. Ví dụ dưới đây minh họa sử dụng FlowPane với Scane Builder.
- File/New/Other..


Mở với Scene Builder:


Thêm các Node vào FlowPane.

Setting Vgap, Hgap and padding.

Kích thước ưa thích (Preferred width, Preferred height)

Căn lề dòng và căn lề cột (Row Valignment & Column Halignment).
