匿名类,迭代器,WindowAdapter,Point,MouseAdapter,paint

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class TestMyMouseAdapter {

	public static void main(String[] args) {

		new MyFrame("Drawing....");

	}

}

class MyFrame extends Frame{
	ArrayList points = null;
	MyFrame(String str){
		super(str);
		points = new ArrayList();
		super.setLayout(null);
		super.setBounds(200, 140, 640, 480);  
		this.setBackground(new Color(200, 220,110));
		super.setVisible(true);
		super.addMouseListener(new Monitor());
		this.addWindowListener(new WindowAdapter(){//匿名类
			public void windowClosing(WindowEvent e){
				setVisible(false);
				System.exit(-1);
			}
			
		});
	}
	
	public void paint(Graphics g){
		Iterator it = points.iterator();//Arraylist中的迭代器
		while(it.hasNext()){
			Point p = (Point)it.next();
			g.setColor(new Color(200,50,100));
			g.fillOval(p.x, p.y, 10, 10);
		}
	}
	
	public void addPoint(Point p){
		points.add(p);
	}
}
class Monitor extends MouseAdapter{//响应鼠标事件
	public void mousePressed(MouseEvent e){
		MyFrame mf = (MyFrame)e.getSource();
		mf.addPoint(new Point(e.getX(), e.getY()));
		mf.repaint();
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值