算了算 已经做了3次画图板了
删繁就简 画图板的核心 无非就是组件与监听器
1.说说组件
窗体类 JFrame
所有的东西都放在了这个上面
ToolPanel tp = new ToolPanel();
this.add(tp,BorderLayout.WEST );
ColorPanel cp = new ColorPanel();
this.add(cp,BorderLayout.SOUTH);
DrawingPanel dp = new DrawingPanel();
this.add(dp,BorderLayout.CENTER);
JMenuBar1 jjj = new JMenuBar1();
this.setJMenuBar(jjj);
并且 给每个组件都设置了布局
工具面板在西侧,颜色在南边,画板在中间,此外还加了一个菜单项,不过还没有实现里面的功能
在工具面板和颜色面板里面 设置了好多好多的按钮
颜色面板
for(int i=0;i<array.length;i++){
JButton jb = new JButton();//实例化一个按钮对象
jb.setBackground(array[i]);//这个应该是颜色面板,这个设置的是背景
jb.setPreferredSize(new Dimension(20,20));//设置按钮的大小
cp.add(jb);//这个是放在了面板上
jb.addMouseListener(al);//这个是给他添加了监听器
}
工具面板
for(int i=0;i<array.length;i++){
ImageIcon imi = new ImageIcon(array[i]);//于颜色面板不同 工具面板需要添加图片 数组内部存的是图片的路径
JButton jb = new JButton(imi);//实例化按钮对象
String name = array[i].substring(array[i].indexOf("/")+1, array[i].lastIndexOf("Tool.jpg"));//这是String类内部的一个方法,目的是截取数组中从“/”后面的一个位置到"Tool"这个位置的一段字符
jb.setActionCommand(name);//这个是JButton类的一个方法,设置此按钮的动作命令
jb.setPreferredSize(new Dimension(16,16));
jb.addActionListener(al);
tp2.add(jb);
}
接下来说监听机制
所谓监听机制无非就是鼠标的按下释放于拖动 还包括对上面按钮的监听
先把按钮的监听代码贴上
工具类里面的按钮监听机制
ActionListener al = new ActionListener(){
//事件处理方法
public void actionPerformed(ActionEvent e) {
//获取按钮上的动作命令值
type = e.getActionCommand();//这个就是得到上面那个setactionCommand里面的参数name
}
颜色面板的按钮监听机制
MouseAdapter al = new MouseAdapter(){
//事件处理方法
public void mouseClicked(MouseEvent e) {
//得到事件源对象
JButton btn = (JButton)e.getSource();
//判断点击的是左键还是右键
if(e.getButton() == 1){//左键
btnB.setBackground(btn.getBackground());//这个可能是背景色
bColor = btn.getBackground();
} else if(e.getButton() == 3){//右键
btnF.setBackground(btn.getBackground());//这个是前景色
fColor = btn.getBackground();
}
}
画图板总结
猜你喜欢
转载自137930562-qq-com.iteye.com/blog/1714684
今日推荐
周排行