2012-11-13 38 views
1

我想問一個小費。如果你有一個帶有許多JPanel的JFrame,它們有十個JTextFields標籤和一個編輯按鈕,你將如何構建你的應用程序。基本的MVC模式和GUI

你會把所有的代碼放在JFrame中嗎?或者你會從JPanel擴展到JFrame中嗎?

按鈕怎麼樣?我想使用MVC模式,你將如何處理actionlisteners?他們每個人都是自己的控制器嗎?還是你們只使用一個控制器?

+0

另請參閱此[示例](http://stackoverflow.com/a/3072979/230513)。 – trashgod

回答

1

我認爲這首先是一個風格和個人喜好的問題。這也取決於你的應用程序應該做什麼以及如何做。

如果你的JPanels以某種方式非常相似,那麼從JPanel擴展它可能是有意義的。例如,如果每個面板都有10個按鈕,其中按鈕1始終爲其對應的模型對象執行xyz()操作(尤其是對於1個JPanel的所有按鈕,此對象相同),並且按鈕2執行abc()...

如果JPanels沒有以這種方式強相關,我會將我的代碼放在JFrame或第三個對象中,從外部設置整個GUI。

它與操作者相似。如果你有很少的動作,我可能會只用一個控制器對象來使用(不是很多文件)。如果您有很多不同的操作,我會將類似的操作分組到每個操作組的一個控制器對象中。

也就是說,最好從一個簡單的方法開始(YAGNI),你可以從JFrame /第三個對象中完成所有事情,並且擁有一個actionlistener,然後在你感覺分割事物給你一個更清晰或更靈活的時候重構設計。