鼠标监听事件

鼠标监听事件

package com.zhang.Study.画笔.鼠标监听事件;
/**
 * 鼠标实现在窗口上点击画点。
 */

import javafx.scene.effect.Light;

import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Iterator;

public class mouseUse {
    public static void main(String[] args) {
        new MyFrame("鼠标画点");
    }
}
    class MyFrame extends Frame{
        //画画需要画笔,需要监听鼠标当前位置,需要集合来存储这个点。

        //定义鼠标点击的点,类型为集合类型。
        ArrayList points;
        //设置窗口属性
        public  MyFrame(String title){
            super(title);
            setBounds(400,400,400,400);
            setVisible(true);
            //存储鼠标点击的点
            points = new ArrayList<>();
            //添加鼠标监听器,针对于这个窗口
            this.addMouseListener(new MyMouseListener());//窗口监听鼠标事件
        }

        //设置画笔

        @Override
        public void paint(Graphics g) {
            //画画,监听鼠标的事件
            //用迭代器遍历集合中的点
            Iterator iterator =points.iterator();
            while (iterator.hasNext()){
                Point point =(Point)iterator.next();
                g.setColor(Color.red);
                g.fillOval(point.x, point.y,10,10 );
            }
        }
        //添加一个点到界面上
        public  void addPaint(Point point){
        points.add(point);
        }
        private class MyMouseListener extends MouseAdapter{
            //鼠标点击,按下,弹起,按住不放事件。这里选按下事件。
            @Override
            public void mousePressed(MouseEvent e) {
                MyFrame frame = (MyFrame) e.getSource();
                //我们在界面上点击时,就会产生一个点,这个点的位置就是鼠标点的位置
                frame.addPaint(new Point(e.getX(),e.getY()));
                //      每次点击鼠标,都需要重新画一遍
                frame.repaint();
            }
        }
    }

 

posted on 2021-12-02 08:18  张铁蛋666  阅读(198)  评论(0编辑  收藏  举报

导航