我有两个 UI 组件,如下所示:
class UIPanel extends JPanel{ ... }
class MainPanel { Model m;
//instantiates UIPanel }
这里的问题是,在 UIPanel 类中,我想添加一个 ActionListener,它将使用 Model 来决定如何处理用户操作。不幸的是,我决定拆分这两个类,并且我无法直接访问模型。一个明显的解决方案是简单地将 UIPanel 类粘贴到 MainPanel 中,但我在想是否有办法保持分割。
最佳答案
您可以简单地为 UIPanel
提供对 Model
的引用:
class UIPanel {
UIPanel(Model m) {
m.addActionListener(listener);
}
}
class MainPanel {
...
MainPanel() {
...
UIPanel uiPanel = new UIPanel(m); // Constructor, a separate setter would be possible also
...
}
}
这显然是一个相当紧密的耦合。也许MainPanel
根本不需要对Model
的引用?
关于Java Swing - 如何分离 UI 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11843397/