ma quel frame.addWindowListener... dove lo richiami? Nel metodo main della tua classe? Se sì, sbagliato: chiamalo nel costruttore.