java - 将监听器设置为 JColorChooser

标签 java swing colors jcolorchooser

当我从 JColorChooser 选择颜色时,我想做一些工作。 在按下 OK 按钮后没有

例如:当我按下红色时,我想显示一条消息说“你选择了红色”。 我真正想要实现的是向用户呈现某种预览。

问题:当从 JColorChooser 按下颜色时如何设置监听器?

最佳答案

"How to set Listener when pressed color from JColorChooser"

如有疑问,请参阅 the tutorial .它指出:

A color chooser uses an instance of ColorSelectionModel to contain and manage the current selection. The color selection model fires a change event whenever the user changes the color in the color chooser.

教程中的示例代码

tcc.getSelectionModel().addChangeListener(this);
. . .
public void stateChanged(ChangeEvent e) {
    Color newColor = tcc.getColor();
    banner.setForeground(newColor);
}

更新

颜色选择器教程有一个 ColorChooserDemo应该相当容易遵循的程序,但这里有一个更简单的程序应该更容易遵循。

import java.awt.Color;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class DemoColorChooser {

    public static void main(String[] args) {
        final JColorChooser chooser = new JColorChooser();
        chooser.setColor(Color.BLUE);
        chooser.getSelectionModel().addChangeListener(new ChangeListener() {
            @Override
            public void stateChanged(ChangeEvent arg0) {
                Color color = chooser.getColor();
                System.out.println(color);
            }
        });
        JDialog dialog = JColorChooser.createDialog(null, "Color Chooser",
                true, chooser, null, null);
        dialog.setVisible(true);
        System.exit(0);
    }
}

您应该记住 JColorChooser 只是一个普通组件,它不是对话框窗口。看起来是这样,因为您可能习惯于使用 JColorChooser.showDialog(),它会自动将其包装在对话框中。但是正如您在上面的代码中看到的那样,我自己包装了它。知道这一点后,您就可以将其他查看组件添加到对话框中,就像您说“想要呈现某种预览”一样,您可以在对话框中这样做

关于java - 将监听器设置为 JColorChooser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25350328/

相关文章:

java - MyClass.class 和 Class.forName (“MyClass” 之间的静态行为差异)

java - 正则表达式匹配带通配符的字符串

Java GridBagLayout组件不会到达指定位置

colors - 在 Mathematica 中用不同颜色对特定点着色

c# - WPF 颜色定义困惑

java - 重写方法

java - JasperReport 与 struts2 一起使用的问题 - 在最终 PDF 文件中获取 null

java - 在 jar 中加载 jpeg 图像

java - 不理解定义构造函数的 Java 语法

matlab - Matlab 中的二维线渐变颜色