[求 助] 遇到了几个问题,随便帮我看一下我的注释有没有错误_有问有答_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  有问有答 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3314 | 回复: 1   主题: [求 助] 遇到了几个问题,随便帮我看一下我的注释有没有错误        下一篇 
i1314lovejoy
注册用户
等级:少校
经验:1234
发帖:69
精华:0
注册:2015-7-14
状态:离线
发送短消息息给i1314lovejoy 加好友    发送短消息息给i1314lovejoy 发消息
发表于: IP:您无权察看 2015-8-20 14:26:36 | [全部帖] [楼主帖] 楼主

import java.awt.*;

import java.awt.event.*;

import java.util.*;

public class Test {

    public static void main (String[] args) {

    new MyFrame ("Test");

    }

}

class MyFrame extends Frame {

    ArrayList points= null;

    MyFrame (String s) {

    super (s);

    points = new ArrayList ();

    setLayout (null);

    setBounds (30,30,300,300);

    setBackground (Color.pink);

    setVisible (true);

    this.addMouseListener (new Monitor ());

    }

    public void paint (Graphics g) {

    Iterator i= points.iterator ();

    while (i.hasNext ()) {

    Point p= (Point) i.next ();

    g.setColor (Color.green);

    g.fillOval(p.x, p.y, 10, 10);

    System.out.println ("呵呵");

    }

    }

    public void addPoint (Point p) {

    points.add(p);

    }

}

class Monitor extends MouseAdapter {

    public void mousePressed (MouseEvent ms) {

    MyFrame mf= (MyFrame) ms.getSource ();

    mf.addPoint (new Point (ms.getX (), ms.getY ()));

    mf.repaint ();

    }

}

该贴被i1314lovejoy编辑于2015-8-20 14:42:19




赞(0)    操作        顶端 
i1314lovejoy
注册用户
等级:少校
经验:1234
发帖:69
精华:0
注册:2015-7-14
状态:离线
发送短消息息给i1314lovejoy 加好友    发送短消息息给i1314lovejoy 发消息
发表于: IP:您无权察看 2015-8-20 14:42:50 | [全部帖] [楼主帖] 2  楼

/*

* 对程序的详细解释:当进入main方法后会调用MyFrame的构造方法,程序开始执行MyFrame这个类的代码

* 首先会加载出一个ArrayList的对象,还有一个Frame窗口,这个窗口监听着鼠标的动作

* 由于重写了paint方法,所以创建出窗口后会自动调用paint方法,该方法的第一行代码是调用了从AbstractList继承来的方法iteraror()

* 在API文档中的解释是public Iterator<E> iterator()返回以恰当顺序在此列表的元素上进行迭代的迭代器。以方便遍历ArrayList里面的元素

* (Iterator和Iterable同为接口,区别是什么?Iterator i= points.iterator ();这是实例化接口的意思吗?不是抽象类和接口都不能被实例化的吗?)

* 对于while (i.hasNext ())和Point p= (Point) i.next ();这两句话有疑问。如果只点了一下鼠标,那么里面就只有一个点,那么hasNext()会返回true吗,

* 因为确实可以在窗口上画出一个点,说明肯定是返回true的,并且把next的这个点画了出来,那么这个next是对于哪个元素而言的?

* 按照程序的要求monitor应该要实现MouseListener这个接口,却为什么是继承MouseAdapter这个类呢?因为实现接口必须重写接口里面所有的方法,对于这个程序来言

* 没必要,而MouseAdapter实现了接口里所有的方法,所以只有继承他并重写需要的方法就好了。

* repaint的作用是刷新(重画)这个窗口,执行过程是 repaint->update->paint 

* 这个程序的执行过程是:main->myframe->paint->monitor->addpoint->repaint,也就是从main方法进入后会创建出一个窗口,这个窗口监听着鼠标事件,

* 同时在不停地遍历Arraylist里面有没有点。如果鼠标被按下了paint就把这个点画出来。

*

*/



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论