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 :

problème d'evènement avec JLIST


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Sr. Software Engineer
    Inscrit en
    Août 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Software Engineer

    Informations forums :
    Inscription : Août 2007
    Messages : 169
    Par défaut problème d'evènement avec JLIST
    salut
    j'ai ecris le code suivant pour gerer les clic sur une JLIST

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DefaultListModel mod= new DifaultListModel();
    JList myList= new JList(mod)
    // ecouteur d'evenement
    JList.addListSelectionListener(this);
    // implementation de valueChaged
    Public valueChaged(){
     int ind= myList.getSelectIdex();
     System.out.println(mod.getElementEt(ind));
    }
    Tout semble correcte mais seulement lors d'un click je recois un double afficahge de la meme information. Un peu comme si j'avais fait un double-click.
    quelle peuvent etre les causes et comment les resoudre?
    merci

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    en effet, tu reçois 2 évènements : un pour signaler que l'élément précédent a été désélectionné, et un autre pour signaler qu'un nouvel élément a été sélectionné. Avec Ctrl+clic, tu ajoutes l'élément à la sélection, et tu ne reçois qu'un seul évènement.

    La méthode ListSelectionEvent#getValueIsAdjusting permet de déterminer si d'autres ListSelectionEvents vont suivre ou non. Dans ton cas, tu peux écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void valueChanged(ListSelectionEvent e) {
     
      if(e.getValueIsAdjusting())
        // d'autres évènements vont suivre, on ne fait rien
        return;
     
      int ind= myList.getSelectIdex();
      System.out.println(mod.getElementEt(ind));
    }
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    tu ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if(!e.getValueIsAdjusting())
    dans ton code sa va te resoudre le probleme

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

Discussions similaires

  1. Problème visualisation scrollbar avec JListe
    Par Doudd@ dans le forum Débuter
    Réponses: 6
    Dernier message: 09/04/2009, 20h50
  2. Problème avec Jlist()
    Par chebmo1986 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 11/02/2009, 21h14
  3. Problème avec Jlist()
    Par chebmo1986 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 26/01/2009, 01h58
  4. problème avec JList
    Par lenetfm dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 21/03/2008, 19h11
  5. problème avec JList
    Par kamikazbe dans le forum Composants
    Réponses: 2
    Dernier message: 20/05/2007, 22h27

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