画图板总结

算了算  已经做了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