IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Autocompletion Sur plusieurs JComboBox d'un seul formulaire


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Autocompletion Sur plusieurs JComboBox d'un seul formulaire
    Bonjour à tous,
    Depuis peu, après plusieurs rechercher sur internet j'ai trouvé une classe d'autocompletion que je viens de mettre en attache.
    Question: quand je l'utilise sur un seul combobox la gestion du lost_focus est bonne mais quand je dois utiliser plusieurs combobox sur le même formulaire, je n'arrive pas à faire le test pour savoir quel est le combobox qui vient de perdre son focus afin d'executer une fonction lui assigné.

    Besoin d'aide vraiment.

    Mes Voeux les meilleurs à tous.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Quel est le rapport entre le FocusListener que tu veux installer sur tes JComboBox et cette classe d'autocompletion ?

    Il te suffit soit
    • d'ajouter un FocusListener différent sur chacune des JComboBox : s'ils sont différents, ils peuvent donc avoir un comportement différent, adapté à chaque combo
    • récupérer le composant source de l'évenement dans le paramètre de la méthode focusLost de type FocusEvent
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Salut et merci pour la réponse.

    Je ne suis pas encore très affuté mais le problème est tel que tu viens d'épingler.
    Comment faire:
    - ajouter un FocusListener différent sur chacune des JComboBox et
    - récupérer le composant source de l'évenement dans le paramètre de la méthode focusLost de type FocusEvent

    Besoin d'aide d'un code concret.

    Aussi cette classe d'autocompletion, me permet juste de faire de l'autocompletion, comme il y ait noté, il y a une redéfinition de la méthode lost_focus.

    Cordialement.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Ok, l'autocompletion n'a aucun rapport avec ce que veux faire : ignore ce qu'elle fait (le fait qu'elle ait besoin d'un FocusListener ne t'empêche pas toi d'en gérer un de ton côté).
    Citation Envoyé par Sony Kyungu Voir le message
    Comment faire:
    - ajouter un FocusListener différent sur chacune des JComboBox et
    Bah, tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    JComboBox combo1 = new JComboBox();
    combo1.addFocusListener(new FocusAdapter() {
       public void focusLost(FocusEvent event) {
                // ce qu'il se passe ici ne concerne que le combo1
       }
    });
    JComboBox combo2 = new JComboBox();
    combo2.addFocusListener(new FocusAdapter() {
       public void focusLost(FocusEvent event) {
                // ce qu'il se passe ici ne concerne que le combo2
       }
    });
    Citation Envoyé par Sony Kyungu Voir le message
    - récupérer le composant source de l'évenement dans le paramètre de la méthode focusLost de type FocusEvent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    JComboBox combo1 = new JComboBox();
    JComboBox combo2 = new JComboBox();
    FocusListener focusListener = new FocusAdapter() {
       public void focusLost(FocusEvent event) {
                if ( event.getSource()==combo1 ) {
                     // ce qu'il se passe ici ne concerne que le combo1
                } else if ( event.getSource()==combo2 ) {
                     // ce qu'il se passe ici ne concerne que le combo2
                } 
       }
    };
     
    combo1.addFocusListener(focusListener);
    combo2.addFocusListener(focusListener);
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Encore merci pour plus d'éclaircissements,
    Voici maintenant la situation:
    1. J'utilise Netbeans 8.1
    2. Sur le formulaire A j'ai 2 Combobox (B et C)
    3. Pour utiliser l'autocompletion sur ces deux JCombobox, il me faut utiliser la classe mise en attache ci-haut comme ceci.
    Formulaire A=new Formulaire(this,true);
    AutoCompletion.enable(A.B);
    AutoCompletion.enable(A.C);
    prod.setVisible(true);
    4. sur le Formulaire j'ai une fonction générée automatiquement comme ceci:
    private void BFocusLost(java.awt.event.FocusEvent evt){
    //code pour B
    }
    5. Le code au point 4 n'est pas pris en charge.
    6. pour le même code quand je le met dans la partie "public void focusLost(FocusEvent e)" de la classe autocompletion, cela fonctionne.

    Merci de m'aider à faire en sorte que cela rentre dans l'ordre. c'est vraiment un point bloquant pour moi.

    Cordialement.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Sony Kyungu Voir le message
    AutoCompletion.enable(A.B);
    La méthode enable dans AutoCompletion ne prend qu'un seul paramètre, la combo.
    Je ne sais pas ce qu'est la classe Formulaire (ce n'est pas une classe standard de Java). Tu parles d'une méthode (pas une fonction) BFocusLost(java.awt.event.FocusEvent evt) générée automatiquement, mais à quel composant est-elle attachée ?

    Citation Envoyé par Sony Kyungu Voir le message
    pour le même code quand je le met dans la partie "public void focusLost(FocusEvent e)" de la classe autocompletion, cela fonctionne.
    Tu veux dire que tu modifies la classe AutoCompletion ? Tu n'as pas à faire ça déjà. Et de toute manière il ne faut pas : forcément, le code que tu y mettras sera le même pour toutes les combos auxquelles tu affecteras la fonction d'autocompletion.

    Cela dit je ne vois pas trop pourquoi tu me racontes tout ça...je t'ai indiqué comment ajouter un écouteur de changement de focus sur une instance de combo et c'est comme ça que tu dois faire (sur tes variables B et C, comme je fais sur combo1 et combo2).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Autocompletion sur plusieurs champs
    Par popovitch130 dans le forum AJAX
    Réponses: 7
    Dernier message: 16/12/2011, 15h50
  2. Intégrer plusieurs Form dans un seul formulaire
    Par Sakuragi007 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 10/07/2007, 17h00
  3. Réponses: 2
    Dernier message: 11/04/2007, 12h14
  4. Plusieurs boutons dans un seul formulaire
    Par rimeh dans le forum Langage
    Réponses: 3
    Dernier message: 29/01/2007, 13h34
  5. Autocompletion sur plusieur champs texte
    Par Tempotpo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/07/2006, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo