多个JInternalFrame之间的共享对象

时间:2010-02-16 10:58:51

标签: java datamodel jinternalframe jdesktoppane

在单个JDesktopPane上的多个JInternalFrame之间实现共享数据对象的最有效方法是什么?

不确定是使用单例还是将数据对象放入JDesktopPane并从组件访问?我不想为每个帧(大量帧)保留这些数据的单独实例

1 个答案:

答案 0 :(得分:1)

我会避开单例(因为它是使用全局变量的关键 - 请参阅here以获取描述),而是将JInternalFrame子类包含对共享数据对象的引用; e.g。

public class MyInternalFrame extends JInternalFrame {
  private final SharedData data;

  public MyInternalFrame(SharedData data) {
    this.data = data;
  }
}

显然,尽管对您的SharedData有多个引用(每个MyInternalFrame实例一个),但系统中仍然只有一个SharedData对象;即,您不会使用此方法复制数据。