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
}

假设我在我的 main 方法中实例化一个 MainWindow 对象:

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

从我的主方法中收听按钮的 ActionEvents(在 SomePanel 中声明,在 MainWindow 中声明)的最佳做法是什么?

非常感谢您的帮助!

4

1 回答 1

5

使用 a PropertyChangeEvent, seen herehere将结果从一个容器传递到另一个容器。这里提到了实现观察者模式的其他方法。

附录:您建议编写 custom ActionEvents

EventListenerList是实现观察者模式的另一种方式。这样的列表对每个 都是通用的,并且在必须管理JComponent多个事件类型时是合适的。JFreeChart是另一个流行的例子,当数据模型发生变化时,它使用不同的事件来更新图表子组件。

于 2013-01-15T17:46:51.700 回答