java awt MouseAdapter_And_repaint

来源:互联网 发布:金华政务服务网软件 编辑:程序博客网 时间:2024/05/10 19:50
/* * MouseListener里面需要重写的方法太多, * 只关心某个方法,用MouseAdapter, * 已经对MouseListener做出了空的实现 * Repaint方法强制重画,调用update方法, * update方法调用paint:双缓冲 */import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.Point;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class MyMouseAdapter {public static void main(String[] args) {new MMAFrame("Test");}}class MMAFrame extends Frame {List<Point> points = null;public MMAFrame(String str) {super(str);points = new ArrayList<Point>();this.setBounds(100, 100, 500, 500);this.addMouseListener(new MouseListener());this.setBackground(new Color(204, 204, 255));this.setVisible(true);}@Overridepublic void paint(Graphics g) {Color c = g.getColor();Iterator<Point> i = points.iterator();for (; 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 MouseListener extends MouseAdapter {@Overridepublic void mousePressed(MouseEvent e) {MMAFrame f = (MMAFrame) e.getSource();f.addPoint(new Point(e.getX(), e.getY()));f.repaint(); // Repaint方法强制重画,调用update方法,update方法调用paint:双缓冲}}

原创粉丝点击