Esatto , metti nel frame il metodo

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_O N_CLOSE) ;

e poi gestisci tutto come ha scritto superpisu