openplanning

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

Xem thêm các chuyên mục:

Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người.
Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.
Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

1- JavaFX ChoiceDialog

ChoiceDialog là một lớp con của lớp Dialog. Nó hiển thị một danh sách các lựa chọn cho người dùng, và người dùng có thể chọn nhiều nhất một lựa chọn.
Đây là hình ảnh một ChoiceDialog tiêu chuẩn:
Nếu bạn không sét đặt Header Text, Title, Content Text, thì hình ảnh dưới đây là một ChoiceDialog mặc định.
** Code **

Book java = new Book(1L, "J01", "Java Tutorial for Beginners");
Book csharp = new Book(2L, "C01", "CSharp Tutoral for Beginners");
Book python = new Book(3L, "P01", "Python for Beginners");

Book defaultBook = csharp;

ChoiceDialog<Book> dialog = new ChoiceDialog<Book>(defaultBook, java, csharp, python);

dialog.setTitle("o7planning");
dialog.setHeaderText("Select a Book:");
dialog.setContentText("Book:");

Optional<Book> result = dialog.showAndWait();

result.ifPresent(book -> {
    this.label.setText(book.getName());
});
Sử dụng đoạn code sau, nếu bạn muốn ẩn vùng Header (Header region):


dialog.setHeaderText(null);

2- Ví dụ ChoiceDialog

ChoiceDialogExample.java

package org.o7planning.javafx.choicedialog;

import java.util.Optional;

import org.o7planning.javafx.model.Book;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceDialog;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class ChoiceDialogExample extends Application {

    private Label label;

    private void showChoiceDialog() {

        Book java = new Book(1L, "J01", "Java Tutorial for Beginners");
        Book csharp = new Book(2L, "C01", "CSharp Tutoral for Beginners");
        Book python = new Book(3L, "P01", "Python for Beginners");

        Book defaultBook = csharp;

        ChoiceDialog<Book> dialog = new ChoiceDialog<Book>(defaultBook, java, csharp, python);

        dialog.setTitle("o7planning");
        dialog.setHeaderText("Select a Book:");
        dialog.setContentText("Book:");

        Optional<Book> result = dialog.showAndWait();

        result.ifPresent(book -> {
            this.label.setText(book.getName());
        });
    }

    @Override
    public void start(Stage stage) {

        VBox root = new VBox();
        root.setPadding(new Insets(10));
        root.setSpacing(10);

        this.label = new Label();

        Button button = new Button("Select a book");

        button.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {
                showChoiceDialog();
            }
        });

        root.getChildren().addAll(button, label);

        Scene scene = new Scene(root, 450, 250);
        stage.setTitle("JavaFX ChoiceDialog (o7planning.org)");
        stage.setScene(scene);

        stage.show();

    }

    public static void main(String args[]) {
        launch(args);
    }

}
Book.java

package org.o7planning.javafx.model;

public class Book {

    private Long id;
    private String code;
    private String name;

    public Book(Long id, String code, String name) {
        this.id = id;
        this.code = code;
        this.name = name;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return this.name;
    }
    
}

Xem thêm các chuyên mục: