Posto come ho risolto il problema...
dopo la riga generata automaticamente da NB initComponents() ho aggiunto...

codice:
        getFrame().setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        getFrame().addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
        System.out.println("Ciao");
        chiudi();
        }
        });
il metodo chiudi() l'ho implementato io e non fa altro che chiudere la finestra quindi

codice:
    private void chiudi() {
                System.exit(0);
            }
cosi sembra funzionare...