Se non ho capito male, però, l'utente chiede una cosa diversa: alla chiusura della finestra X deve chiudersi anche la finestra Y (se è aperta) e non tutta l'applicazione (o, quantomento, non le altre finestre aperte). Questo lo si fa con un WindowListener.
public class UnaFinestra extends JFrame {
...
private JFrame altraFinestra;
...
public UnaFinestra() {
super("titolo finestra");
setDefaultCloseOperation( DO_NOTHING_ON_CLOSE );
addWindowListener( new WindowAdapter() {
@Override
public void windowClosing(WindowEvent we) {
verificaChiusura();
}
});
// ......
}
...
private void verificaChiusura() {
if (altraFinestra != null) {
altraFinestra.dispose();
}
dispose();
}
}
Qualcosa del genere.
"altraFinestra" è il riferimento alla finestra "secondaria" che deve essere chiusa alla chiusura della "principale".