中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
临沂市| 景泰县| 上思县| 文安县| 布拖县| 长沙县| 钟祥市| 绥芬河市| 安新县| 同心县| 瑞金市| 康定县| 修武县| 荃湾区| 瑞安市| 富民县| 阿荣旗| 绥宁县| 资中县| 长治市| 广灵县| 华亭县| 达日县| 玛沁县| 修文县| 临邑县| 丽水市| 娱乐| 定结县| 凤庆县| 阳西县| 仙桃市| 长治县| 开江县| 阜新市| 巴里| 瑞丽市| 登封市| 咸阳市| 龙井市| 崇明县|