Java Swing和观察者模式

3
我正在寻找一种在Swing中清晰组织我的UI代码的方式。
假设我的UI代码按以下方式结构化:
class MainWindow extends JFrame {
    // SomePanel panel is added here
}
class SomePanel extends JPanel {
    // buttons, checkboxes and so on are added here
}

假设我在主方法中实例化了一个MainWindow对象:
MainWindow frame = new MainWindow("I am an App");

按钮的ActionEvents最佳实践是什么?这些按钮声明在SomePanel内,SomePanel又声明在MainWindow内。如何从我的main方法中监听这些ActionEvents?
非常感谢您的帮助!

请参阅如何使用Actions - trashgod
1
另请参阅谦卑的对话框 - Robin
感谢trashgod。编辑:所以您建议编写自定义ActionEvents? - Macks
谢谢Robin,我会看一下。 - Macks
1个回答

5
使用PropertyChangeEvent(参见此处此处)来在一个容器与另一个容器之间传递结果。其他实现观察者模式的方法在此提到
补充说明:您建议编写自定义ActionEvents吗? EventListenerList是实现观察者模式的另一种方式。每个JComponent都有这样的列表,并且当需要管理多个事件类型时,使用这样的列表是合适的。 JFreeChart 是另一个广泛使用不同事件更新图表子组件的例子,当数据模型发生变化时。

谢谢,我会仔细研究这个。 - Macks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接