01.在一个类中写三个监听器

在drawUI类中创建窗口并实现图形绘制功能,通过ActionListener和鼠标监听器响应按钮点击和鼠标操作。利用DrawListener类进行绘图对象的创建,并在drawUI类中设置按钮和监听器,实现不同图形的绘制。
摘要由CSDN通过智能技术生成

前文;在一个drawUI类中建立一个窗口,窗口里面实现添加按钮和画图的功能,能够点击相应的按钮便会出现与之相对应的图形,通过操作鼠标进行绘图。

一.创建一个darwUI类,建立一个窗口

public class drawUI extends JFrame{
public void initUI() {
        //创建出一个窗口
            this.setTitle("绘制图像");
            this.setSize(1000,800);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     //   setVisible(true);
            //布局方式
            FlowLayout flow=new FlowLayout();
           setLayout(flow);
           setVisible(true);
}
}

由于drawUI类继承了JFrame,所以无须创建对象,可直接调用,现在在initUI方法外建立两个数组,这两个数组会用于按钮的名字。

public class drawUI extends JFrame {
String str[]={"直线","矩形","三角形","多边形","圆","实心矩形","实心圆","签字笔","橡皮擦","打开","关闭"};
    Color strc[]={Color.CYAN,Color.BLUE,Color.WHITE,Color.BLACK,Color.GREEN};
}

2.创建一个类去声明监听器

ActionListener动作监听器

public class DrawListener implements ActionListener{
 public void actionPerformed(ActionEvent e){
}
}

在该接口的方法中重写自己想写的方法


public void actionPerformed(ActionEvent e){
        //获取按钮上的字符command
        String btr=e.getActionCommand();
        //在点击按钮之后,获取按钮的值赋值给shapeStr
        shapeStr=btr;
        //判断是否为空字符
        if(shapeStr.equals("")){
            //从按钮上获取颜色信息
            JButton jButton=(JButton)e.getSource();
            //通过颜色信息获取按钮的背景颜色

            Color color=jButton.getBackground();
            //将颜色赋值给画笔
            g.setColor(color);
        }else {
            shapeStr=btr;
        }
        System.out.println(btr+"按钮被点击了");
}

鼠标监听器

public class DrawListener implements  MouseListener{}

重写方法

public void mouseClicked(MouseEvent e);

    /**
     * Invoked when a mouse button has been pressed on a component.
点击
     */
    public void mousePressed(MouseEvent e);

    /**
     * Invoked when a mouse button has been released on a component.
按下
     */
    public void mouseReleased(MouseEv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值