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
Vous devez vous connecter pour publier un commentaire.
est ce que vous cherchez, je pense.
OriginalL'auteur Steve McLeod
À l'aide de
addComponentListener()
avec unComponentAdapter
:merci beaucoup, +1
J'aurais accepté selon la réponse a été posté en premier. Il n'est pas nécessaire de fournir un lien vers l'API. La réponse est d'utiliser un ComponentListener. Chaque programmeur doit avoir un accès direct à l'API, et d'apprendre à l'utiliser. Si vous souhaitez fournir un lien, alors il devrait être à la Balançoire tutoriel sur "Comment Écrire un Composant de l'Auditeur". De cette façon, lorsque l'affiche ressemble ils y trouveront aussi la section sur la façon d'écrire des écouteurs pour tous les autres Swing des écouteurs d'événement. Permet de donner aux gens les outils pour résoudre des problèmes sur leur propre plutôt que de ce qui nous attend à la cuillère nourrir la réponse à tout.
OriginalL'auteur Michael Myers
Vous pouvez enregistrer un
HierarchyBoundsListener
sur votreJFrame
, ou utiliser unComponentListener
comme suggéré par d'autres.OriginalL'auteur Peter Lang