⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myframe99.java

📁 * 本章非重点,但可以串联运用前面所有的知识点.顺带理解内部类 * awt图形开发 运用. * awt有个缺点,在不同的操作系统上,显示的图形不一样. * 由于都是调用 操作系统的api,
💻 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 + -