Java事件监听器

一、好言

虽然留下深深遗憾,而你可以从此学会珍惜你周围的美好。

二、内容

2.1、大致流程如下:图片来源于该文章

image.png

2.2、案例

package com.mouse.autumn.other.event2;
import java.util.EventObject;
/**
 * @Title: ButtonEvent
 * @Package com.mouse.autumn.other.event2
 * @Description: 事件  
 * @author Mahone Wu
 * @date 2018/9/6 14:43
 * @version V1.0
 */
public class ButtonEvent extends EventObject {
    /**
     * Constructs a prototypical ButtonEvent.
     *
     * @param source The object on which the ButtonEvent initially occurred.
     * @throws IllegalArgumentException if source is null.
     */
    public ButtonEvent(Object source) {
        super(source);
    }

    private String operator;

    public void controlSwitch(String operator){
        this.operator = operator;
        System.out.println("-----------" + operator);
    }


    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }
}

package com.mouse.autumn.other.event2;

import java.util.Vector;

/**
 * @Title: ButtonSource
 * @Package com.mouse.autumn.other.event2
 * @Description: 事件源
 * @author Mahone Wu
 * @date 2018/9/6 14:43
 * @version V1.0
 */
public class ButtonSource  {

    Vector vector = new Vector();

    public void addListeners(Listener listener){
        vector.add(listener);
    }


    public void modifyEvent(String operator){
        notify(operator);
    }


    public void notify(String operator){
        ButtonEvent event = new ButtonEvent(this);
        event.controlSwitch(operator);
        for (int i = 0 ; i < vector.size(); i++){
            vector.get(i).listener(event);
        }
    }
}
package com.mouse.autumn.other.event2;
import java.util.EventListener;
/**
 * @Title: Listener
 * @Package com.mouse.autumn.other.event2
 * @Description: 监听器
 * @author Mahone Wu
 * @date 2018/9/6 14:44
 * @version V1.0
 */
public class Listener implements EventListener {
    public void listener(ButtonEvent event){
        System.out.println("做了什么操作 :" +  event.getOperator());
    }
}
package com.mouse.autumn.other.event2;
/**
 * Created by Mahone Wu on 2018/9/6.
 */
public class Runner {
    public static void main(String[] args) {
        ButtonSource source = new ButtonSource();
        Listener listener = new Listener();
        source.addListeners(listener);
        source.modifyEvent("open");
    }
}

2.3、源码

在servlet中查找到类似使用场景,相关类如下:
HttpSessionEvent:事件
HttpSessionListener:监听器
AbstractSessionManager:事件源

image.png

你可能感兴趣的:(Java事件监听器)