0

What's the most efficient method of implementing a shared data object between multiple JInternalFrames on a single JDesktopPane?

Not sure whether to go with singleton or can I put a data object in the JDesktopPane and access from a component? I don't want to keep separate instances of this data for each frame (lots of frames)

citronic
  • 9,868
  • 14
  • 51
  • 74

1 Answers1

1

I would steer clear of singleton (as it's a-kin to using global variables - See here for a description) and instead subclass JInternalFrame to contain a reference to the shared data object; e.g.

public class MyInternalFrame extends JInternalFrame {
  private final SharedData data;

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

Obviously despite having multiple references to your SharedData (one per MyInternalFrame instance) there is still only one SharedData object in your system; i.e. you are not duplicating data with this approach.

Adamski
  • 54,009
  • 15
  • 113
  • 152