openplanning

Hướng dẫn và ví dụ JavaFX FlowPane Layout

  1. FlowPane Layout
  2. Ví dụ với FlowPane
  3. Thiết kế FlowPane trên Scene Builder

1. FlowPane Layout

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.

2. Ví dụ với FlowPane

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ụ:

3. Thiết kế FlowPane trên Scene Builder

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).

Các hướng dẫn lập trình JavaFX

Show More