Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java event

作者:浪子罢了   发布日期:2025-03-04   浏览:79

// Java Event Example

import java.util.EventObject;
import java.util.Observable;

// 定义一个事件类,继承自 EventObject
class MyEvent extends EventObject {
    private String message;

    public MyEvent(Object source, String message) {
        super(source);
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}

// 定义一个事件源类,继承自 Observable
class MyEventSource extends Observable {
    public void triggerEvent(String message) {
        // 设置事件已更改
        setChanged();
        // 通知所有注册的监听器
        notifyObservers(new MyEvent(this, message));
    }
}

// 定义一个监听器接口
interface MyEventListener {
    void onEvent(MyEvent event);
}

// 实现监听器接口
class MyEventListenerImpl implements MyEventListener {
    @Override
    public void onEvent(MyEvent event) {
        System.out.println("Received event: " + event.getMessage());
    }
}

// 测试事件机制
public class Main {
    public static void main(String[] args) {
        MyEventSource source = new MyEventSource();

        // 注册监听器
        source.addObserver((o, arg) -> {
            if (arg instanceof MyEvent) {
                MyEvent event = (MyEvent) arg;
                new MyEventListenerImpl().onEvent(event);
            }
        });

        // 触发事件
        source.triggerEvent("Hello, World!");
    }
}

解释说明:

  1. MyEvent 类:这是一个自定义的事件类,继承自 EventObject。它包含一个消息字段,并提供构造函数和获取消息的方法。
  2. MyEventSource 类:这是一个事件源类,继承自 Observable。它负责触发事件,并通知所有注册的监听器。
  3. MyEventListener 接口:这是一个监听器接口,定义了当事件发生时需要执行的操作。
  4. MyEventListenerImpl 类:这是 MyEventListener 接口的一个实现类,具体实现了事件处理逻辑。
  5. Main 类:这是测试类,创建了一个事件源对象,并注册了一个监听器,最后触发了一个事件。

通过这种方式,可以实现简单的事件驱动编程模型。

上一篇:java hash算法

下一篇:java 浮点数

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站