Como pegar o evento quando fecha um JInternalFrame?

Galera,

eu tentei assim na minha classe “Principal extends JFrame implements ActionListener, InternalFrameListener”

this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

implementei os métodos de InternalFrameListener:
public void internalFrameClosed(InternalFrameEvent e) {}
e
public void internalFrameClosing(InternalFrameEvent e) {}

Mas ele não entra nesses métodos.

O JInternalFrame fecha normal quando clica no (X), mas gostaria de executar alguns métodos assim que ele é fechado. Alguém sabe como fazer isso?

use o metodo internalFrameClosed

jInternalFrame1.addInternalFrameListener(new javax.swing.event.InternalFrameListener()
        {
            public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt)
            {
                //executar seus metodos
            }
            public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt)
            {
            }
        });

Obrigado, amigo

funcionou!

mas continuo sem entender por que não funciona implementar a classe InternalFrameListener e definir os métodos:

Principal extends JFrame implements InternalFrameListener

e

public void internalFrameClosed(InternalFrameEvent e) {

}