事件监听器如何识别每种方法中的特定事件?

Ali*_*Ali 4 java events user-interface

我无法理解的是如何确切的方法如

    public interface MouseListener extends EventListener {

        public void mouseClicked(MouseEvent e) {
             //code for what happens when you click the mouse on the component
        }
    }
Run Code Online (Sandbox Code Playgroud)

知道鼠标事件的id.为什么在执行事件时事件仅发送到mouseClicked方法?这些方法的构造函数需要任何可能的鼠标事件,所以当其他方法具有相同的构造函数(即mousePressed,mouseReleased等)时,为什么它只被发送到mouseClicked方法

Mar*_*oun 5

观察者模式是重要的事情.

此模式用于在运行时在对象之间形成关系.

该模式背后的想法很简单-更多的一个观察员有兴趣在一个状态主题登记他们与利益主体的依附.当事情在我们改变 主题观察者可能感兴趣的,则发送通知消息,该呼叫在每个更新方法观察.当 观察者不再对主体的状态感兴趣时,他们可以简单地自行分离.

动作听众的整个想法就是基于此.一旦理解了这种模式,就会很简单.

当你注册一个ActionListener的,它的观察者和按钮的主题.因此,当按钮更改状态时,将启动actionPerformed方法.

请注意,所有侦听器都基于此模式,当事件发生时,已注册的侦听器将收到有关此事件的通知,并将执行操作.例如,Swing自己管理所有注册和事件通知(它已经"内置").

(http://java.dzone.com/articles/design-patterns-uncovered)