如何使用JColorChooser组件?

JColorChooser是一个Swing组件,它提供从其中我们可以选择以RGB格式的色码的调色板。JColorChooser组件分为两部分,颜色选择的选项卡式窗格和预览框。该选项卡包含三个选项卡,可让我们从色标中选择一种颜色,一种HSB(色调,饱和度和亮度)组合以及一种RGB(红色,蓝色,绿色)颜色组合。

package org.nhooo.example.swing;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;

public class JColorChooserDemo extends JFrame implements ChangeListener {
    private JColorChooser colorChooser = null;

    public JColorChooserDemo() throws HeadlessException {
        initUI();
    }

    private void initUI() {
        // 设置此JFrame的标题和默认关闭操作。
        setTitle("JColorChooser Demo");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        // 创建一个JColorChooser组件的实例,并
        // 将其添加到框架的内容。
        colorChooser = new JColorChooser();
        getContentPane().add(colorChooser, BorderLayout.PAGE_END);

        // 添加更改侦听器以在其中获取所选颜色
        // JColorChooser组件。
        colorChooser.getSelectionModel().addChangeListener(this);
        this.pack();
    }

    /**
     * Handles color selection in the JColorChooser component.
     *
     * @param e the ChangeEvent
     */
    public void stateChanged(ChangeEvent e) {
        // 在JColorChooser组件中获取选定的颜色
        // 并将颜色以RGB格式打印到控制台。
        Color color = colorChooser.getColor();
        System.out.println("color = " + color);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new JColorChooserDemo().setVisible(true);
            }
        });
    }
}

当您在程序上方运行程序时,JColorChooser将显示带有组件的框架。如果从颜色选择中单击一种颜色,则将在控制台中打印RGB格式的颜色字符串。