C'è una opzione nel pannello delle proprietà del JFrame che indica defaultCloseOperation (se non sbaglio è una delle prima). Impostala su dispose().