Adapter and repaint

//Adapter and repaint
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class MyMouseAdapterGeneric{
  public static void main(String args[]) {
    new MyFrame99("drawing...");//新建Frame
  }
}

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) {//PAINT()方法,repaint会调用update()再调用paint()
    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){//add方法,朝数组里 添加圆
    points.add(p);
  }
}

class Monitor extends MouseAdapter {//Adapter 是适配器 实现Listener接口,4个空的实现方法,只写自己要重写的方法
  public void mousePressed(MouseEvent e) {
    MyFrame99 f = (MyFrame99)e.getSource();//得到触发事件的对象 ,强转
    f.addPoint(new Point(e.getX(),e.getY()));//添加圆,调用add方法,参数 坐标
    f.repaint();//调用repaint()方法
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值