GUI-AWT-鼠标监听
鼠标监听
1 package com.luckylu.gui; 2 3 import java.awt.*; 4 import java.awt.event.MouseAdapter; 5 import java.awt.event.MouseEvent; 6 import java.awt.event.WindowAdapter; 7 import java.awt.event.WindowEvent; 8 import java.util.ArrayList; 9 import java.util.Iterator; 10 11 //鼠标监听事件 12 public class TestMouseListener { 13 public static void main(String[] args) { 14 new MyFrame3("画图"); 15 } 16 } 17 //自己的类 18 class MyFrame3 extends Frame{ 19 //画画需要画笔,需要监听鼠标的当前位置,需要集合来存储这个点 20 ArrayList points; 21 public MyFrame3(String title){ 22 super(title); 23 setBounds(200,200,400,300); 24 //存鼠标点击的点 25 points = new ArrayList<>(); 26 27 setVisible(true); 28 //鼠标监听器,针对此窗口; 29 this.addMouseListener(new MyMouseListener()); 30 addWindowListener(new WindowAdapter() { 31 @Override 32 public void windowClosing(WindowEvent e) { 33 System.exit(0); 34 } 35 }); 36 } 37 38 //ctrl+ o 快捷键 39 @Override 40 public void paint(Graphics g) { 41 //画画,监听鼠标的事件 42 Iterator iterator = points.iterator(); //定义迭代器iterator 43 while (iterator.hasNext()) { 44 Point point = (Point) iterator.next(); 45 g.setColor(Color.blue);//画笔颜色 46 g.fillOval(point.x, point.y, 10, 10); //画笔位置及大小 47 } 48 } 49 //添加点到窗口界面 50 public void addPaint(Point point){ 51 points.add(point); 52 } 53 54 //适配器模式 55 private class MyMouseListener extends MouseAdapter { 56 //鼠标按下 57 @Override 58 public void mousePressed(MouseEvent e) { 59 MyFrame3 myframe = (MyFrame3) e.getSource(); 60 //点击时,就会在界面上上产业一个点! 61 //这个点就是鼠标点的位置 62 myframe.addPaint(new Point(e.getX(),e.getY())); 63 //每次点击鼠标都需要重新画一遍 64 myframe.repaint(); // 刷新 65 } 66 } 67 }
结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步