首页 > 其他 > 详细

鼠标点击事件(Gui)

时间:2021-04-05 12:46:41      阅读:24      评论:0      收藏:0      [点我收藏+]
public class mousePaintDemo {
    public static void main(String[] args) {
    Mymouse.test(new Mymouse("画笔"));
    }
}

//自定义的frame类
class Mymouse extends Frame {
    //退出方法
    public static void test(Frame frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    
    
    ArrayList points;//定义存储鼠标点击位置的集合
    
    //frame的构造方法
    public Mymouse(String little){
        super(little);//向父类即Frame类传递一个title用于创建Frame时作为窗口名
        setBounds(200,200,300,400);
        this.addMouseListener(new Mymousepaint());//鼠标监听事件
        //需要有一个集合存放鼠标的点
        points=new ArrayList();
        setVisible(true);
    }
    
    //向集合中添加鼠标点击的点的方法
    public void addpaint(Point point){
        points.add(point);
    }

    @Override
    //画笔方法
    public void paint(Graphics g) {
        Iterator iterator = points.iterator();//创建一个迭代器
        while(iterator.hasNext()){//如果迭代器中还有元素则执行循环
            Point point= (Point) iterator.next();//next每次返回下一个元素,这行将每个元素
            //提出创建一个点对象
            g.fillOval(point.x,point.y,10,10);//画一个实心的圆,位置在鼠标点击的位置
        }
    }

//鼠标监听事件
    private class Mymousepaint extends MouseAdapter{
        @Override
        public void mouseClicked(MouseEvent e) {//当鼠标单击时接受一个对象,这个对象在这里是frame,因为frame调用了add‘方法
            Mymouse frame = (Mymouse) e.getSource();//因为e是一个frame对象因此getsource也就生成了一个Myframe对象
            //获取鼠标的点传递给addpaint方法
              frame.addpaint( new Point(e.getX(),e.getY()));
            //每次点击鼠标都刷新
            frame.repaint();
        }
    }
}

 

鼠标点击事件(Gui)

原文:https://www.cnblogs.com/chencidiao/p/14617811.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!