2013-01-15 93 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