No. Quello va bene. Il problema è che non dovresti far sì che quando le finestre vengono chiuse i relativi oggetti vengano distrutti (posti a null). Io ho risolto il problema facendo in modo che, all'operazione di close, le finestre vengano rese invisibili:
codice:
// Codice del JInternalFrame
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
E quando vengono "riaperte" vengano rese visibili:
codice:
// Codice che apre il JInternalFrame:
finestra.show();
Ciao.