Mac*_*cks 2 java oop model-view-controller swing observer-pattern
我正在寻找一种在Swing中清晰地组织我的UI代码的方法.
假设我的UI代码按以下方式构建:
class MainWindow extends JFrame {
// SomePanel panel is added here
}
class SomePanel extends JPanel {
// buttons, checkboxes and so on are added here
}
Run Code Online (Sandbox Code Playgroud)
假设我在main方法中实例化一个MainWindow对象:
MainWindow frame = new MainWindow("I am an App");
Run Code Online (Sandbox Code Playgroud)
在main-method中监听按钮的ActionEvents(在SomePanel中声明,在MainWindow中声明)的最佳做法是什么?
非常感谢您的帮助!
使用a PropertyChangeEvent,在此处和此处看到,将结果从一个容器传递到另一个容器.这里提到了实现观察者模式的其他方法.
附录:你建议写自定义ActionEvents?
EventListenerList是另一种实现观察者模式的方法.这样的列表对每个列表都是通用的JComponent,并且在必须管理多个事件类型时是适当的.JFreeChart是另一个流行的示例,它在更改数据模型时使用各种事件来更新图表子组件.