Focus Permanent

Résolu
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 4 nov. 2007 à 13:01
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 4 nov. 2007 à 19:29
Salut:

Je suis en train de développer un composant pour mon application. Mon problème est comme suit:
Je veux que mon JTextField garde toujours le focus au fûr et à mesure que l'utilisateur saisie des données. Ceci n'est pas garantit parceque je suis en train d'afficher un JPopupMenu de temps en temps pour faire des notifications à l'utilisateur.

J'ai pensé à utiliser un FocusListener, mais ça n'a pas marché.

final JTextField textField = ...;
textField.addFocusListener(new FocusListener() {
    public void focusGained(FocusEvent evt) {
    }
    public void focusLost(FocusEvent evt) {
       // Essayer de ramener le focus de nouveau au textfield
       textField.requestFocusInWindow();
    }
});

Avez vous des solutions. Et merci.

5 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 nov. 2007 à 15:42
Salut,

je vois bien la problèmatique mais ne comprend pas trop comment tu en es arrivé là... bref voici un exemple de combo avec auto completion (pas à pas) :

http://www.orbital-computer.de/JComboBox/

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
4 nov. 2007 à 19:29
Salut:

Le problème vient de la méthode JPopupMenu.show(Component invoker, int x, int y).
J'ai mis l'invoker à null et j'ai fait un changement de repère pour calculer la position absolue du JPopupMenu.
En guise de conclusion, c'est casse-tête. Je pense que je vais me satisafaire avec le lien que tu as fournis.
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 nov. 2007 à 13:31
Salut,

normalement il faudrait que tu invalides le focus sur les autres composants de ta fenêtre (setRequestFocusEnabled(boolean aFlag))

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
4 nov. 2007 à 14:39
Salut:

Je vais te mettre dans le contexte. L'actuel composant queje suis en train de développer est un composant d'auto-complétion.
Lorsque je saisis du texte, un JPopupMenu apparait pour lister toutes les complétions possibles, mais celui ci "vole" le focus du JTextField ce qui empêche de continuer la saisie, la seule solution qui est génante est de placer le curseur à l'aide du curseur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
4 nov. 2007 à 14:52
Salut:

J'ai testé mon code ligne par ligne surtout les lignes dont j'avais plus de doute et j'étais surpris du fait que le problème est dû à la méthode setPopupSize() de la classe JPopupMenu.

Maintenant je suis devant un autre problème, en effet le JPopupMenu n'a pas la bonne largeur pour être bien ajusté au dessous du JTextField. On dirait que c'est la pénailté à payer.
0
Rejoignez-nous