将侦听器设置为JColorChooser

时间:2014-08-17 14:55:26

标签: java swing colors jcolorchooser

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

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

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

1 个答案:

答案 0 :(得分:3)

  

"如何在JColorChooser中按下颜色时设置监听器"

如有疑问,请参阅the tutorial。它声明:

  

颜色选择器使用ColorSelectionModel的实例来包含和管理当前选择。每当用户更改颜色选择器中的颜色时,颜色选择模型就会触发更改事件。

教程中的示例代码

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()自动将其包装在对话框中。但正如您在上面的代码中看到的那样,我自己包装它。了解这一点后,您可以在对话框中添加其他查看组件,就像您说的那样“#34;想要呈现某种预览&#34;”,您可以在对话框中执行此操作