Bonsoir à tous,
Je cherche un moyen pour obtenir le nom de l'objet qui a le focus dans un JFrame. Y aurait-il dja une fonction ou un bout de code déjà tout fait?
Un grand merci.
Bonsoir à tous,
Je cherche un moyen pour obtenir le nom de l'objet qui a le focus dans un JFrame. Y aurait-il dja une fonction ou un bout de code déjà tout fait?
Un grand merci.
Il suffit de regarder la doc de JFrame...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 getFocusOwner()
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
J'ai essayé cette méthode mais avec un retour de nullpointerException. Qu'est-ce que je n'ai pas fait correctement?
Merci!!
jTextField1.requestFocus();
System.out.println("val="+this.getFocusOwner().toString());
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
D'après la doc, null => aucun composant n'a le focus
getFocusOwner
public Component getFocusOwner() Returns the child Component of this Window that has focus if this Window is focused; returns null otherwise.
Returns:the child Component with focus, or null if this Window is not focusedSee Also:getMostRecentFocusOwner(), isFocused()
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Un peu bizarre car le jtextfield semble bien l'avoir le focus... Ce que je ne comprend pas, c'est qu'ils disent que la "window" doit avoir le focus alors qu'en soit, le focus est donné à un enfant du window... Quelles sont les conditions à remplir pour que cela fonctionne?
Merci
Après test, je dois bien reconnaître que ça ne marche pas finement
La solution "standard" d'après quelques recherches et essais consiste à faire un listener et de l'affecter à tous les composants voulus...
Ça fonctionne, mais c'est lourd...
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Merci pour ta réponse. C'est ce qu'il me semblait avoir lu aussi mais bon, comme tu dis, fort lourd. Il vaut peut-être mieux dans ce cas-là faire des tests (hasfocus) sur les tous les composants d'un window. Je laisse en attente ce sujet au cas où il existerait une autre solution plus simple.
Encore merci!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager