📄 myframe99.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class MyMouseAdapterGeneric{
public static void main(String args[]) {
new MyFrame99("drawing...");
}
}
class MyFrame99 extends Frame {//注意这里用泛型
ArrayList<Point> points = null;
MyFrame99(String s) {
super(s);
points = new ArrayList<Point>();
setLayout(null);
setBounds(300,300,400,300);
this.setBackground(new Color(204,204,255));
setVisible(true);
this.addMouseListener(new Monitor());//设置鼠标监听
}
public void paint(Graphics g) {//重写画笔
Iterator<Point> i = points.iterator();//使用泛型后,把所有点都遍历下
while(i.hasNext()){
Point p = i.next();
g.setColor(Color.BLUE);
g.fillOval(p.x,p.y,10,10);//遍历所有点并用蓝色的圆画出来
}
}
public void addPoint(Point p){
points.add(p);//定义 加入方法
}
}
//当鼠标点一下,就把图形里面画的圆画出来
class Monitor extends MouseAdapter {//利用MouseAdapter把所有的方法都实现了一遍,导致你不必每个都实现
public void mousePressed(MouseEvent e) {//鼠标事件//这个代表鼠标按下去
MyFrame99 f = (MyFrame99)e.getSource();
f.addPoint(new Point(e.getX(),e.getY()));//加入点
f.repaint();//重绘组件//Component 继承的方法//相当于刷新
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -