之前我们在画板中切换颜色都是将按钮的背景颜色设为固定颜色,但是Java提供了一个颜色选择器,可以灵活地选择我们需要的颜色。
一,JColorChooser
JColorChooser——颜色选择器,提供一个用于用户操作和颜色选择的控制器对话框,常用方法为:
public static Color showDialog(Component component, String title,Color initalColor)
在component(父组件)中部显示一个颜色选择面板,标题为title,初始颜色为initalColor, 返回选择的颜色。
二,实现步骤
在画板代码的基础上实现步骤如下:
1,创建颜色选择器的按钮并绑定动作监听
//创建颜色选择器按钮 增加到界面上 绑定监听
JButton ChooseColor = new JButton("颜色选择器");
jf.add(ChooseColor);
ChooseColor.addActionListener(dlistener);//只是创建了一个按钮而已 与颜色选择器无关
2,对动作监听结果进行处理
当我们利用e.getActionCommand()得到按钮上的字符串判定为颜色切换按钮时,创建一个颜色选择器jc,得到jc选择的颜色。同时将我们点击按钮“颜色选择器”得到的事件对象转化为按钮对象jbc,将jbc的背景颜色设置为颜色选择器得到的颜色,画笔颜色也设置为颜色选择器得到的颜色,这样当我们选择了某个颜色时,按钮的颜色就会变为相应的颜色,画笔也会变为相应的颜色,大大改进了颜色切换的功能。
else if(e.getActionCommand().equals("颜色选择器")) {
//当点击了”颜色选择器”按钮
JColorChooser jc = new JColorChooser();//则创建一个颜色选择器
Color color = jc.showDialog(null, "选取您的颜色", Color.white);//得到选择的颜色
JButton jbc = (JButton)e.getSource();//将得到的事件 转化为 按钮对象 方便后续利用
jbc.setBackground(color);//将按钮对象的背景颜色 设为 颜色选择器选择的颜色
g.setColor(color);//将画笔颜色 设为 颜色选择器选择的颜色
}