Я бы держался подальше от синглтона (так как использование глобальных переменных - в родстве - см. здесь для описания) и вместо этого подкласса JInternalFrame
для ссылки на общий объект данных; например,
public class MyInternalFrame extends JInternalFrame {
private final SharedData data;
public MyInternalFrame(SharedData data) {
this.data = data;
}
}
Очевидно, что, несмотря на наличие нескольких ссылок на ваши SharedData (по одной на экземпляр MyInternalFrame), в вашей системе все еще остается только один SharedData
объект; то есть вы не дублируете данные с помощью этого подхода.