java - 在 Java 中创建自定义事件

标签 java events listener handler

我想在 Java 中做这样的事情,但我不知道怎么做:

当事件“object 1 say 'hello'”发生时, 然后对象 2 通过说“你好”来响应该事件。

谁能给我一个提示或示例代码?

最佳答案

您可能想查看 observer pattern .

这里有一些示例代码可以帮助您入门:

import java.util.*;

// An interface to be implemented by everyone interested in "Hello" events
interface HelloListener {
    void someoneSaidHello();
}

// Someone who says "Hello"
class Initiater {
    private List<HelloListener> listeners = new ArrayList<HelloListener>();

    public void addListener(HelloListener toAdd) {
        listeners.add(toAdd);
    }

    public void sayHello() {
        System.out.println("Hello!!");

        // Notify everybody that may be interested.
        for (HelloListener hl : listeners)
            hl.someoneSaidHello();
    }
}

// Someone interested in "Hello" events
class Responder implements HelloListener {
    @Override
    public void someoneSaidHello() {
        System.out.println("Hello there...");
    }
}

class Test {
    public static void main(String[] args) {
        Initiater initiater = new Initiater();
        Responder responder = new Responder();

        initiater.addListener(responder);

        initiater.sayHello();  // Prints "Hello!!!" and "Hello there..."
    }
}

相关文章:Java: Creating a custom event

关于java - 在 Java 中创建自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6270132/

相关文章:

.net - 有没有办法在 C#.NET 中使用 TabIndex 实现通用 KeyDown 处理程序和焦点移动?

javascript - ajax,javascript - 使用两个事件启动函数

android - 监听 Tab/Android 中的 Switch 状态变化

java - 在 JTextArea 中设置插入符位置

java - getResourceAsStream 在尝试检索 JSON 文件时使用 android 返回 null

java - 为什么我无法访问泛型类型类元素?

java - 如何在Spring boot中修改Mono对象的属性而不阻塞它

c# - 相当于 += 赋值给一个事件的代码

java - 通过前台监听器调用后台布局监听器

java - 使用 Javassist 修改父类(super class)中声明的方法