應如何管理監聽器等?我發現只有一個按鈕的例子等Java Swing GUI用戶操作處理
我能想到的下列選項:
- 每個額外的類 - 看起來不正確,特別是當項目 可以動態創建
- 對於每個組類(如Form1中, 窗口2,controlButtonsOnLeft,controButtonsOnRight,MAINMENU, userMenu的,...),其中我會檢查哪個按鈕/組件引起這樣 (經由的getSource例如方法)
- 一些超級(大小)控制米勒, 將接受所有用戶操作每個
- 新的匿名類, 它將調用控制器的方法與指定 細節(可能枚舉)
而另一個問題參數:我發現了很多的例子MVC,我想知道什麼更好(或常用)的應用程序。由1人開發(應用程序不會很大)?
A.查看器設置聽衆控制器(A1-3)
B.控制器調用觀看者的方法,它接受作爲聽者參數(方法addLoginSubmitListener,addControlBoldButtonListener等)
所有的以上是能夠實現到目前爲止,我會選擇B4。 含義在控制我會做這樣的事情:
這(在代碼一個地方1個邏輯部分)結合可讀代碼,那並不產生任何不必要的冗餘碼,那並不需要任何難溶動態支票,是容易可重複使用等等。 您能否確認/評論此解決方案?
當爲偵聽器使用匿名實現時,以後無法在處理對象時將其移除,最終(以及您*將*具有這些情況)會導致內存泄漏。 – alterfox 2014-10-28 22:36:06
@alterfox:感謝您指點。 – Anonym 2014-10-28 22:52:01
@alterfox:這不是由GC處理的嗎?監聽器的列表是這種匿名監聽器的唯一參考,在組件處置期間它將被清空,對嗎?或者我也許會誤解。在這種情況下,我將爲此創建一個類併爲構造函數添加一個參數,這將決定哪個方法將處理它。 [也許有更好的解決方案,這是第一個跨過我的腦海] – Anonym 2014-10-28 23:02:08