两个类实现一个ListnerInferface,只有第一个类运行事件?

时间:2014-02-24 03:10:36

标签: java swing model-view-controller actionlistener

所以我有课程;

ControllerOne.java

ControllerTwo.java

他们implement MyWindowListener都与方法void actionHappend();

接口

在我的View类implementing ActionListener中,我已将windowListener添加到JButton。当在视图中运行actionPerformed()时,它将检查事件的来源并检查它是否是按钮。

如果是按钮,则windowListener.actionHappend();将运行,控制器中的某些代码将运行。

现在的问题是,只有第一个实现此接口的Controller“ControllerOne”似乎运行方法actionHappend();

问题:

是否可以在同一事件中启动实现相同自定义侦听器的多个类?

1 个答案:

答案 0 :(得分:4)

  

是否可以在同一事件中运行实现相同自定义侦听器的多个类?

回答,是的,他们可以。单个事件可以触发相同侦听器类型的多个。

现在,如果您想让我的工作更具挑战性,并且我的答案质量得到改善,请通过更多细节和代码提高问题的质量。

暂且不说:

  • 核心Java中已经存在WindowListener interface,并且正如其名称所示,它是为了监听Swing和AWT窗口(如JFrame和JDialogs)的状态更改而构建的。
  • 此接口未声明actionHappend()方法。
  • 当有人将WindowListener添加到JButton时,我无法想象。 ActionListener是的,但WindowListener从不。
  • 事实上,JButton甚至没有addWindowListener(WindowListener wListener)方法。
  • 您声明,"in my View class implementing ActionListener..." - 请注意,作为一般规则,视图类不应实现侦听器接口,除非是非常简单的玩具程序。