2013-01-15 141 views
2

我正在尋找一種方法在Swing中整理我的UI代碼。Java Swing和觀察者模式

比方說,我的UI代碼是通過以下方式構建:

class MainWindow extends JFrame { 
    // SomePanel panel is added here 
} 
class SomePanel extends JPanel { 
    // buttons, checkboxes and so on are added here 
} 

比方說,我實例化我的主要方法中一個主窗口對象:

MainWindow frame = new MainWindow("I am an App"); 

什麼是最好的在我的主要方法中聽按鈕的ActionEvents(它在MainPanel中聲明的SomePanel內部聲明)的練習?

非常感謝您的幫助!

+0

請參閱[*如何使用操作*](http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html)。 – trashgod

+1

另請參閱[謙遜的對話框](http://home.arcor.de/fbdiplom/lit_pdf/fea02_thehumbledialogbox.pdf) – Robin

+0

感謝trashgod。編輯:所以你建議編寫自定義ActionEvents? – Macks

回答

5

使用PropertyChangeEvent(見herehere)將結果從一個容器傳送到另一個容器。其他實現observer pattern的方式被提及here

補充說明:您正在研究制定自定義ActionEvents

EventListenerList是實現觀察者模式的另一種方式。這樣的列表對於每個JComponent都是共同的,並且當必須管理多於一個事件類型時是適當的。 JFreeChart是另一個流行的示例,它在數據模型更改時使用各種事件更新圖表子組件。

+0

謝謝,我會仔細看看這個。 – Macks