myframe99.java

来自「* 本章非重点,但可以串联运用前面所有的知识点.顺带理解内部类 * awt图」· Java 代码 · 共 43 行

JAVA
43
字号
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 + =
减小字号Ctrl + -
显示快捷键?