91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java eventlistener的事件處理是否支持過濾

小樊
81
2024-11-24 13:40:54
欄目: 編程語言

Java的EventListener接口本身不支持事件過濾。但是,您可以通過實現自定義的EventListener來執行過濾操作。以下是一個簡單的示例,展示了如何創建一個自定義的EventListener來過濾特定類型的事件:

import java.util.EventListener;

// 自定義事件過濾器接口
interface CustomFilterEventListener extends EventListener {
    boolean accept(CustomEvent event);
}

// 自定義事件類
class CustomEvent {
    private String type;

    public CustomEvent(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }
}

// 自定義事件發布者
class CustomEventPublisher {
    private CustomFilterEventListener listener;

    public void setListener(CustomFilterEventListener listener) {
        this.listener = listener;
    }

    public void publishEvent(CustomEvent event) {
        if (listener != null && listener.accept(event)) {
            // 觸發事件處理程序
            System.out.println("Event processed: " + event.getType());
        } else {
            System.out.println("Event filtered: " + event.getType());
        }
    }
}

// 自定義事件處理程序
class CustomEventHandler implements CustomFilterEventListener {
    @Override
    public boolean accept(CustomEvent event) {
        // 過濾條件:只處理類型為 "type1" 的事件
        return "type1".equals(event.getType());
    }

    @Override
    public void actionPerformed(CustomEvent event) {
        // 實際的事件處理邏輯
        System.out.println("Event action performed: " + event.getType());
    }
}

public class Main {
    public static void main(String[] args) {
        CustomEventPublisher publisher = new CustomEventPublisher();
        CustomEventHandler handler = new CustomEventHandler();
        publisher.setListener(handler);

        // 發布事件
        publisher.publishEvent(new CustomEvent("type1"));
        publisher.publishEvent(new CustomEvent("type2"));
    }
}

在這個示例中,我們創建了一個自定義的CustomEvent類和一個自定義的CustomEventPublisher類。CustomEventPublisher類有一個CustomFilterEventListener類型的listener屬性,用于存儲事件過濾器。當發布事件時,CustomEventPublisher會檢查事件過濾器是否接受該事件,如果接受,則觸發事件處理程序。

CustomEventHandler類實現了CustomFilterEventListener接口,并重寫了accept方法以應用過濾條件。在這個例子中,我們只處理類型為 “type1” 的事件。當發布事件時,只有類型為 “type1” 的事件會被處理。

0
离岛区| 阿拉善盟| 滕州市| 西青区| 芒康县| 遂溪县| 长丰县| 和田县| 师宗县| 葫芦岛市| 富川| 汨罗市| 北宁市| 聂荣县| 乌鲁木齐县| 安溪县| 都江堰市| 通榆县| 盐源县| 太保市| 明水县| 长汀县| 政和县| 老河口市| 湘阴县| 德兴市| 安远县| 瑞金市| 巴彦淖尔市| 石家庄市| 右玉县| 玛纳斯县| 阳信县| 藁城市| 临高县| 临清市| 湄潭县| 乌海市| 普安县| 兴国县| 龙门县|