Non dovrebbe chiuderti anche GUI1 chiudendo GUI2 perchè GUi 2 è solo un oggetto con scope locale alla action peformed di GUI1.Quindi le cose sono 2 gui2 genera qualche eccezzione che fa uscire il programma oppure io non ho capito bene la situazione e allora sarebbe meglio che tu mi postassi o il codice completo o ti costruissi un esempio che si compila e si esegue correttamente che ti da lo stesso problema.Tu mi hai postato solo porzioni di codice (ad esempio mancano i costruttori) e così mi è abbastyanza difficile capire dove sta il problema.Ciao