我有一個基於嚮導的軟件,包含許多面板。可以有不同的路徑來獲取最後一個屏幕。所以每條路徑都有自己的控制器來計算數據。在所有路徑結束的最後一個面板中,有一個按鈕來完成數據。該按鈕具有在所有路徑的控制器中調用的動作偵聽器。所以當按下按鈕時,它基本上會運行所有的控制器,並且出現明顯的錯誤。 下面是在最後的面板按鈕動作監聽器的方法:我初始化動作監聽這樣如何爲單個按鈕設置多個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