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 }
结果:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现