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

Composants Java Discussion :

Quel mouse listener utiliser ?


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut Quel mouse listener utiliser ?
    Bonjour à tous,

    Je cherche à realiser le mecanisme suivant :

    L'utilisateur entre le debut du code postal d'une commune:
    par exemple il tape "3000" dans le champs code postal.(cf image ci-dessous)

    Automatiquement, une recherche est faite pour trouver toutes les communes qui commence par 3000.

    Lorsque l'utilisateur clique sur la commune ("NIMES" dans l'exemple ci dessous), je souhaiterais que le code postal se complète entièrement.

    Probleme , j'ai essayé tous les evenements possible de la souris mais rien ne fonctionne. En effet, j'utilise actuellement l'événement mouseClicked mais cela ne fonctionne pas !!

    Il faut cliquer en face la fleche sur la boite elle meme pour que la mise a jour se fasse. Ce qui me satisfait pas tout à fait.





    Merci d'avance.


    PS: j'utilise netbeans avec le gui builder matisse

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Si tu veux mettre a jour le code au fur et a mesure que l'utilisateur parcours la liste de choix, ce n'est de toute maniere pas du cote d'une MouseListener qu'il faut voir mais du cote d'un ListSelectionListener.
    Cependant l'API publique de JComboBox ne semble pas etre capable de gerer l'evolution de la selection dans sa liste tant que celle-ci n'est pas validee. Il vaut donc customiser le composant (au pire des cas en reecrire un nouveau).

    Par contre si tu veux reagir a sa selection finale, ce n'est pas un MouseListener qu'il faut mais un ItemListener, en prenant en compte le sous-etat ItemEvent.SELECTED (car on peut aussi recevoir le sous-etat ItemEvent.DESELECTED).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut
    Tout d'abord merci pour ton aide.

    J'ai essayé de ce que tu propose cependant, ceci à soulevé un effet pervers.
    Des que je commence a saisir le code postal, la commune est recherchée.
    Le champs commune se remplit donc automatiquement. Et cela active l'evenement item.selected. Ce dernier evenement remplit le code postal.


    La consequence : a peine je saisit "3" dans code postal qu'une commune passe automatiquement en item.selected et le code postal est saisi avant meme que j'ai finit de saisir le code postal ??

    Je sais pas si je suis tres clair.

    pour faire cours l'evenement item.selected a lieu sans au remplissage automatique de la combobox -->> Hyper pervers !!

    Peut etre vois tu une autre solution ?

    Il faudrai pouvoir bloquer/inhiber l'evenement item.selected pedant la saisie du code postal. je sais pas si c'est possible

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par icicmoi Voir le message
    pour faire cours l'evenement item.selected a lieu sans au remplissage automatique de la combobox -->> Hyper pervers !!

    Peut etre vois tu une autre solution ?

    Il faudrai pouvoir bloquer/inhiber l'evenement item.selected pedant la saisie du code postal. je sais pas si c'est possible
    Tout à fait. C'est donc à toi désormais de mettre les champs booléens qu'il faut ou de désactiver temporairement les listener pour éviter que ces deux composants ne réagissent quand tu ne veux pas qu'il le fasse.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Bonjour,

    Comment déclenche tu la recherche de la liste des communes ?
    A chaque saisie sur le clavier ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut
    Citation Envoyé par fnobb Voir le message
    Bonjour,

    Comment déclenche tu la recherche de la liste des communes ?
    A chaque saisie sur le clavier ?
    Tout à fait. (sur chaque keyrelease)

  7. #7
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Une solution possible

    initialiser la combo avec un Item prés défini ("Choisissez une commune).

    lors que l'on saisie dans le champ on ajout à la liste les communes.
    dans l'action de ItemListener on test si l'action est une sélection et que l'item n'est pas "choisissez une commune" alors on remplace dans le TextField le code postal.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut
    Merci pour tout. Le probleme est résolu.
    Lorsque l'evenemenent FocusLost a lieu pour le champs code postal. Je place un booleen a 1 qui permet d'activer le listener selected. (0 sinon)

    J'ai encore une petite question. Est qu'il y a une possibilité de faire en sorte que l'entier ne soit pas une variable globale ??


    Voici le morceau de code en esperant que cela pourra en aider d'autres !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static int code=0;
    Sur le champs code postal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private void ongletClientsChampCpFocusLost(java.awt.event.FocusEvent evt) {
     
         code=1;
     
    }
    Sur le champs comboxcommune:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     private void ongletClientsComboVilleItemStateChanged(java.awt.event.ItemEvent evt) {                                                         
     
     
            if (evt.getStateChange()==ItemEvent.SELECTED)
    {       
                if (code==1)
                {...}
    }
    }

    Merci encore.

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

Discussions similaires

  1. quel listener utiliser
    Par jayjay.f dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/03/2007, 13h17
  2. Réponses: 7
    Dernier message: 23/03/2006, 13h13
  3. [JInternalFrame] quel Listener utilise ?
    Par lanfeustdetroll dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 11/07/2005, 17h09
  4. [JEditorPane] Quel listener utiliser?
    Par Pill_S dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 27/07/2004, 13h32
  5. [corba] débutant : dans quels cas l'utiliser
    Par jmturc dans le forum CORBA
    Réponses: 2
    Dernier message: 10/10/2002, 08h58

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