事件模型ActionEvent

 

一.概念认知


二.代码示例

package com.awt;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/*
 * 事件模型
 */
public class TestActionEvent {
    public static void main(String[] args) {
        Frame f = new Frame("0202陪考党");
        Button b = new Button("press Me!");
        Monitor bh = new Monitor();
        //添加指定的动作侦听器以从此按钮接收动作事件。
b.addActionListener(bh);
        f.setLocation(300,300);
        f.add(b,BorderLayout.CENTER);
        f.pack();
        f.setVisible(true);
    }
}
/*
 * public interface ActionListener extends EventListener
 * 用于接收动作事件的侦听器界面。
 */
class Monitor implements ActionListener{//实现接口
    @Override
    /*
     * actionPerformed(non-Javadoc)
     * void actionPerformed(ActionEvent e)发生动作时调用。 
     */
    public void actionPerformed(ActionEvent e) {
        System.out.println("a button has been pressed");
    }
}

程序分析:结合上图来看,在①处b按钮事件源对象上调用

addActionListener()方法传进了bn对象,即动作监听器

②处类名是Monitor,其实类名是什么不重要,重要的是在③处实现了ActionEvent接口;

那么当按钮点击了后,在监听器bn中传送了某种事件对象,事件对象中封装了事件的具体信息(这里是点击信息),Monitor侦听界面接收到了点击动作事件之后,调用ActionPerformed方法,执行某种处理(打印处理)

有点抽象,结合图和我的注释理解

 

posted @ 2019-01-17 15:34  静心*尽力  阅读(1653)  评论(0编辑  收藏  举报