我有一个基于向导的软件,包含许多面板。可以有不同的路径来获取最后一个屏幕。所以每条路径都有自己的控制器来计算数据。在所有路径结束的最后一个面板中,有一个按钮来完成数据。该按钮具有在所有路径的控制器中调用的动作侦听器。所以当按下按钮时,它基本上会运行所有的控制器,并且出现明显的错误。 下面是在最后的面板按钮动作监听器的方法:我初始化动作监听这样如何为单个按钮设置多个ActionListeners
public void destinationNextButtonListener(ActionListener listenForDestinationNextButton){
localDestinationNext.addActionListener(listenForDestinationNextButton);
}
而且每个控制器的承包商:
控制器1:
{
.
.
this.localDestinationChooser.destinationNextButtonListener(new destinationNextButtonListener());
}
class destinationNextButtonListener implements ActionListener{...}
所以,如果有2个控制器,当按下按钮时,所有控制器开始工作。我正在寻找一个逻辑或者动作监听器决定它必须监听哪个控制器的东西。
有什么想法?
我的猜测是最后的屏幕应该由它自己的控制器控制。所有其他屏幕也会有其特定的控制器(可能从最后一个屏幕继承),以便所有向导页面上的最后一个屏幕上的按钮行为相同,而不管使用哪种实现(因为它们全部从父级继承) - 有道理? – ochi 2015-04-02 02:01:19
@ochi感谢您的评论,它实际上启发了我,是的答案是为每个屏幕分开控制器。如果你提供它作为答案,我可以勾选它。 – Dan 2015-04-03 02:39:07