Java中的事件监听器

Wlo*_*ast 9 java listener

我一直在使用AS3中的事件监听器,但似乎在java中没有(除了图形组件).这令人惊讶.

问题是,我怎样才能在java中实现自己的事件监听器?也许有人之前做过这项工作?

ass*_*ias 13

您可以定义一个Listener接口:

public interface EventListener {
    void fireEvent (Event e);
}
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中:

EventListener lst = new EventListener() {
    @Override
    public void fireEvent (Event e) {
        //do what you want with e
    }
}

someObject.setListener(lst);
someObject.somethingHappened();
Run Code Online (Sandbox Code Playgroud)

然后在someObject中(实际上你可能会有一个监听器列表):

public class SomeObject {
    private EventListener lst;

    public void setListener (EventListener lst) {
        this.lst = lst;
    }

    public void somethingHappened () {
        lst.fireEvent(new Event("Something Happened"));
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @WlofrevoKcast是的 - 它是观察者模式. (4认同)
  • 这就像观察者模式一样,不是吗? (2认同)