Hướng dẫn sử dụng JavaFX ColorPicker
Công ty Vĩnh Cửu tuyển dụng lập trình viên Java

1- JavaFX ColorPicker

JavaFX ColorPicker là một thành phần giao diện giúp người dùng lựa chọn mầu sắt trong một tập hợp có sẵn, hoặc thiết lập các mầu bổ xung bằng cách kết hợp RGB hoặc HSB.
Cửa sổ tùy biến Color giúp thiết lập bổ xung thêm các mầu sắc.
Dưới đây là các thành phần của ColorPicker:
Hộp chọn mầu tùy biến (Custom Color Dialog window)

Color Chooser (Trình chọn mầu)

Trình chọn mầu (Color Chooser) trông giống như một MenuButton, khi người dùng nhấn vào trình chọn mầu một bảng mầu (Palette) sẽ hiển thị cho phép người dùng chọn mầu. Bạn có thể sét đặt Style cho phép trình chọn mầu có giao diện giống với SplitMenuButton. Chú ý rằng trình chọn mầu không phải là một MenuButton hay SplitMenuButton nó chỉ giống về giao diện.
// Sét đặt để nút trình chọn mầu có giao diện giống SplitMenuButton
colorPicker.getStyleClass().add("split-button");

// Sét đặt để nút trình chọn mầu có giao diện giống MenuButton
colorPicker.getStyleClass().add("button");
Xem thêm về MenuButton & SplitMenuButton:

2- Ví dụ với ColorPicker

ColorPickerDemo.java
package org.o7planning.javafx.colorpicker;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.ColorPicker;
import javafx.scene.layout.FlowPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class ColorPickerDemo extends Application {

    @Override
    public void start(Stage stage) {

        final ColorPicker colorPicker = new ColorPicker();
        colorPicker.setValue(Color.RED);

        final Circle circle = new Circle(50);
        circle.setFill(colorPicker.getValue());

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

            @Override
            public void handle(ActionEvent event) {
                circle.setFill(colorPicker.getValue());
            }
        });

        FlowPane root = new FlowPane();
        root.setPadding(new Insets(10));
        root.setHgap(10);
        root.getChildren().addAll(circle, colorPicker);

        Scene scene = new Scene(root, 400, 300);

        stage.setTitle("JavaFX ColorPicker (o7planning.org)");

        stage.setScene(scene);
        stage.show();
    }

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

}