Java: comment enregistrer un écouteur pour écouter un JFrame mouvement

Comment pouvez-vous suivre le mouvement d'une JFrame lui-même? Je voudrais enregistrer un écouteur qui serait appelé en arrière à chaque fois JFrame.getLocation() va retourner une nouvelle valeur.

MODIFIER Voici un code indiquant que la accepté de répondre est la résolution de mon problème:

import javax.swing.*;

public class SO {

    public static void main( String[] args ) throws Exception {
        SwingUtilities.invokeAndWait( new Runnable() {
            public void run() {
                final JFrame jf = new JFrame();
                final JPanel jp = new JPanel();
                final JLabel jl = new JLabel();
                updateText( jf, jl );
                jp.add( jl );
                jf.add( jp );
                jf.pack();
                jf.setVisible( true );
                jf.addComponentListener( new ComponentListener() {
                    public void componentResized( ComponentEvent e ) {}
                    public void componentMoved( ComponentEvent e ) {
                        updateText( jf, jl );
                    }
                    public void componentShown( ComponentEvent e ) {}
                    public void componentHidden( ComponentEvent e ) {}
                } );
            }
        } );
    }

    private static void updateText( final JFrame jf, final JLabel jl ) {
        //this method shall always be called from the EDT
        jl.setText( "JFrame is located at: " + jf.getLocation() );
        jl.repaint();
    }

}
Notez que ce n'est pas une question à propos de OO conception, ni à propos de l'utilisation ou de la non-utilisation de final etc. La question est de savoir comment inscrire un rappel qui peut être déclenché à chaque fois que la position de la JFrame changements et le morceau de code est juste un petit hack agissant comme une preuve de concept pour brancher la bonne réponse.

OriginalL'auteur cocotwo | 2010-03-11