鼠标监听事件
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(); } } }