当我从JColorChooser选择一种颜色时,我想做一些工作。不按确定按钮后。
例如:当我按红色时,我想显示一条消息,说“您选择了红色”。
我真正想要实现的是向用户呈现某种预览。
问题:从JColorChooser按颜色时如何设置侦听器?
最佳答案
“从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()
自动将其包装在对话框中。但是正如您在上面的代码中看到的那样,我自己包装了它。知道这一点后,您便可以在对话框中添加其他查看组件,因为您说“想呈现某种预览”,因此可以在对话框中添加关于java - 将监听器设置为JColorChooser,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25350328/