6

控制器我最近遇到想要實現模型 - 視圖 - 控制器在Swing中的一個問題。如何避免耦合查看和Swing中

我有一個GUI類由副板的,而那些子面板由其它子面板。現在在其中一個子子面板中有一個JButton。在這個JButton的ActionListener中,我想調用控制器中的一個方法。爲了做到這一點,我需要將控制器深入到GUI的深處,以便JButton所在的子子面板。然後在這個子子面板中,我需要將一個ActionListener附加到JButton,並通過調用我想要在控制器中調用的方法來填充actionPerformed()。

我敢肯定,你們都看到了這個問題。是否有任何避免將控制器深入到GUI的好方法。

我唯一的想法就是使控制器單從視圖脫鉤,但我聽說單的通常是邪惡的。

在這個問題上的任何建議將最讚賞。提前致謝!

回答

4

相反傳遞到所述控制器的基準,讓所述控制器到視圖,通過描繪here間接關聯的建議。添加PropertyChangeListener(圖示here)對此非常理想。當視圖需要調用控制器時,它只需調用firePropertyChange()

更方便的方法是爲控制器提供某些操作的單獨視圖,例如reset()方法here