你自己说的不是很明白了么
就是因为ActionListener中有actionPerformed()方法
原理和你的程序一样呀,也是在Button添加ActionListener之后,会调用该监听器的方法。
这种授权的事件监听方式都是基于MVC模式的

解决方案 »

  1.   

    java采用的也是一种回调的机制,通过监听器将某一方法(事件)通过监听器先注册给了某一个对象,当该对象触动事件时,当然就要调用相应的方法了,只不过其原有的已封装好了而已。你可以研究一下command模式,和这个类似。
      

  2.   

    这个就是actionlistener接口的定义:/*
     * @(#)ActionListener.java 1.14 01/12/03
     *
     * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
     * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
     */package java.awt.event;import java.util.EventListener;/**
     * The listener interface for receiving action events. 
     * The class that is interested in processing an action event
     * implements this interface, and the object created with that
     * class is registered with a component, using the component's
     * <code>addActionListener</code> method. When the action event
     * occurs, that object's <code>actionPerformed</code> method is
     * invoked.
     *
     * @see ActionEvent
     * @see <a href="http://java.sun.com/docs/books/tutorial/post1.0/ui/eventmodel.html">Tutorial: Java 1.1 Event Model</a>
     * @see <a href="http://www.awl.com/cp/javaseries/jcl1_2.html">Reference: The Java Class Libraries (update file)</a>
     *
     * @author Carl Quinn
     * @version 1.14 12/03/01
     * @since 1.1
     */
    public interface ActionListener extends EventListener {    /**
         * Invoked when an action occurs.
         */
        public void actionPerformed(ActionEvent e);}
      

  3.   

    你可以去你的jdk安装目录下的src.zip中找到button的源代码看看就明白了。
      

  4.   

    java采用的也是一种回调的机制通过监听器将某一方法(事件)通过监听器先注册给了某一个对象当该对象触动事件时当然就要调用相应的方法了只不过其原有的已封装好了而已