一般都是一个组件添加一个listener(listener一般都是接口)。
然后在接口的实现中添加响应函数(比如MousePressed),一般一个事件函数都有一个参数Event,然后用这个参数得到响应的组件(比如e.getSource)

解决方案 »

  1.   

    我感觉java虚拟机应该算是windows中的一个程序,虚拟机从消息队列里获得消息,然后再向下分发把
    自己的理解,不知道对不对
      

  2.   

    如果操作系统不是windows呢?
    在一些类中有这样的方法 如protected void processEvent(AWTEvent e)实现事件的分发,回调用了listener中的响应方法,但是processEvent的方法谁来调用呢?
      

  3.   

    java与windows无关,怎么能相提并论,如果是为windows而学gui,还是VC++或C#更适合一些。
      

  4.   

    看看回调知识应当有所收获!
    和window的消息机制差不多。下面介绍四种消息实现的方法:
        最常用的就是利用implements interface 再来实现接口中的自己需要定义的时间方法。
        但是这样有一个缺点就是要实现所有的接口方法,代码就显得有些多余;还有一种写法就是利用内部类的特点,这样可以使程序代码简洁;还有一种就是单独写一个类实现相应的事件接口方法,同样也只是前几种的变迁。最后一种是更简洁和明了的,那就是使用试配器(Adapter)
    这样就只要实现自己想要的事件方法,而不要全部象实现接口方法那样。
      

  5.   

    谢谢大家。
    在button.java里有这样回调接口方法的一段代码:
    protected void processActionEvent(ActionEvent e) {
            if (actionListener != null) {
                actionListener.actionPerformed(e);
            }
        }
    我的问题主要是:例如点一下按钮,是回调了接口方法actionPerformed,但ActionEvent对象是那里生成的?这个processActionEvent又是谁来调用?