鼠标监控
package lesson03;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import java.util.Iterator;
public class TextMouseListener {
public static void main(String[] args) {
new MyFrame("画画");
new MyFrame("画画").CloseWindow();
}
}
class MyFrame extends Frame {
//画画需要画笔,需要监听鼠标当前的位置,需要集合来存储这些点
ArrayList points;
public void CloseWindow() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public MyFrame(String tittle) {
super(tittle);
setBounds(200, 200, 400, 300);
setVisible(true);
//存点
points = new ArrayList();
//监听鼠标,针对这个窗口
addMouseListener(new MyMouseListener());
}
@Override
public void paint(Graphics g) {
Iterator iterator = points.iterator();
while (iterator.hasNext()) {
//不懂????
Point point = (Point) iterator.next();
g.setColor(Color.BLACK);
g.fillOval(point.x, point.y, 10, 10);
}
}
public void addPoint(Point point) {
points.add(point);
}
//适配器模式
private class MyMouseListener extends MouseAdapter {
@Override
public void mousePressed(MouseEvent e) {
//为什么用MyFrame且强转
MyFrame myFrame = (MyFrame) e.getSource();
myFrame.addPoint(new Point(e.getX(), e.getY()));
//每次点击鼠标重画
myFrame.repaint();
}
}
}