滑鼠監聽事件、模擬畫圖工具
阿新 • • 發佈:2022-01-29
package com.wang.gui; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Iterator; //滑鼠監聽事件 public class TestMouseListener { public static void main(String[] args) { new MyFrame2("畫圖"); } } //自己的類 class MyFrame2 extends Frame { //畫畫需要畫筆,需要監聽滑鼠當前的位置,需要集合 ArrayList points = null; public MyFrame2(String title) { super(title); setBounds(200, 200, 400, 300); //存滑鼠點選的點 points = new ArrayList<>(); this.addMouseListener(new MyMouseListener()); setVisible(true); } @Override public void paint(Graphics g) { //畫畫,監聽滑鼠的事件 Iterator iterator = points.iterator(); while (iterator.hasNext()) { Point point = (Point) iterator.next(); g.setColor(Color.BLUE); g.fillOval(point.x, point.y,10,10); } } //新增一個點到介面上 private void addPaint(Point point){ points.add(point); } //介面卡模式 private class MyMouseListener extends MouseAdapter { //滑鼠 按下,彈起,按住不放 @Override public void mousePressed(MouseEvent e) { MyFrame2 frame = (MyFrame2) e.getSource(); //這個我們點選的時候,就會在介面上產生一個點!畫 //這個點就是滑鼠的點; frame.addPaint(new Point(e.getX(), e.getY())); //每次點選滑鼠都需要重新畫一遍 frame.repaint();//重新整理 } } }