zoukankan      html  css  js  c++  java
  • 鼠标点击画点程序

    思路:

    1.创建一个Frame作为载体画图.

    2.Frame中添加鼠标事件.

    3.创建一个容器ArrayList,用来存放鼠标点击的点.

    4.每当鼠标点击时就生成一个Point对象,将Point对象添加到一个容器ArrayList中去.然后重画界面.

    5.重画时用重新调用Paint方法.Paint方面中一次用Iterator遍历所以的Point点对象,然后将他们一次画出.


    import java.util.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class TestPaint {
    	public static void main(String args[]) {
    		new JackFrame().launchFrame();
    	}
    }
    
    class JackFrame extends Frame {
    	ArrayList al;
    	public void launchFrame() {
    	MouseL ml=new MouseL();
    	al=new ArrayList(); //Generics: ArrayList<Point> al=new ArraryList<Point>();
    	//如果写成ArrayList al=new ArrayList<Point>();会提示不安全,但是不会出错.
    	setBounds(200,200,400,400);
    	setVisible(true);
    	addMouseListener(ml);
    	}
    	public void paint(Graphics g) {
    		Iterator<Point> ip=al.iterator(); //如果这里写成Iterator ip=al.iterator();那么Iterator
    		//ip还是Object型,只是al.iterator()给它了一个Point类型而已. 可以这样理解.Iterator<Point>就是
    		//把返回的容器内容自动转换为Point
    		Point p;
    		while(ip.hasNext()) {
    			p=ip.next();
    			g.setColor(Color.red);
    			g.drawOval((int)p.x,(int)p.y,5,5);
    		}
    	}
    }
    
    class MouseL extends MouseAdapter {
    	public void mouseClicked(MouseEvent e) {
    		JackFrame jf=(JackFrame)e.getSource(); //这里我们可以用e.getSource()获得事件对象的引用,就可以操控对象中的成员变量.
                    Point p1=new Point();   //我们之前没有用该方法,用的是将对象句柄传给监听器...是因为那时要监听的总类很多....这个变量相对单一
    		p1.x=e.getX();          //反正只要能获得对象引用就能够进行操作....无所谓.
    		p1.y=e.getY();
    		jf.al.add(p1);
    		jf.repaint();
    	}
    }




  • 相关阅读:
    HDU 1941 Justice League
    HDU 1960 Taxi Cab Scheme
    POJ 1986 Distance Queries
    UVA 11991 Easy Problem from Rujia Liu?
    sql的跟踪与Tkprof工具
    ORA04031 错误
    Oracle_spatial的空间索引
    oracle发生重启动的介绍
    expdp\impdp及exp\imp
    oracle锁
  • 原文地址:https://www.cnblogs.com/jackhub/p/3147247.html
Copyright © 2011-2022 走看看