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 :

Evenement sur JList


Sujet :

Composants Java

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut Evenement sur JList
    bsr,
    je travail avec java :Jlist, Mon objectifs est de gerer l'evenement sur JList
    cad lorsque je double clique sur un element dans la liste je le recupere dans une variable de type object
    c'est pour cela que j'ai ecris dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
       public void mouseClicked(MouseEvent e) {
            if(e.getClickCount()==2){ //teste sur le nombre des clicks
            System.out.print("Double Click Appel pour double click \n\n");
             if(e.getSource()instanceof JList){
                System.out.print("Double click sur JList \n");
    ..........
             }
              if(e.getSource()instanceof JTreeTable) {  //teste sur l'instance
                  int ligne=mTreeTablePanel.mTreeTable.rowAtPoint(e.getPoint());
                  mTreeTablePanel.mTreeTable.setRowSelectionInterval(ligne,ligne);
                  int ligne1=mTreeTablePanel.mTreeTable.getSelectedRow();
                  if (ligne1 != -1) {
                      if(mTreeTablePanel.mTreeTable.getTree().isExpanded(ligne)){
                          mTreeTablePanel.mTreeTable.getTree().collapseRow(ligne);
                      }
                      else {.......

    sa marche tres bien avec jtreetable mais jlist sa marche pas

    Merci pour l'aide

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    Salut, pour les événements de sélection sur une list il existe ListSelectionEvent & ListSelectionListener qui sont fort probablement plus appropriés que des MouseEvents.

    De plus, le instanceof est en général déconseillé, car "sale".

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    bsr,
    pouvez vous me dire la syntaxe de ListSelectionEvent & ListSelectionListener
    je veux faire en faite des recherche sur google
    merci pour la reponse

  4. #4
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    je pense qu'en regardant un peu la javadoc de ces deux classes tu devrais pouvoir trouver pas mal d'infos

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 282
    Par défaut
    Histoire de dire, ça devrait fonctionner un peu comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    JList liste = new JList();
          liste.addListSelectionListener(new ListSelectionListener() {
     
          public void valueChanged(ListSelectionEvent e) {
            JList source = (JList)e.getSource();
            Object selection = source.getSelectedValue();
          }
        });

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    D'accord je veux essayer avaec ce code Merci pour l'aide

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    Ma remarque que ce code s'execute deux fois si comme si je clique deux fois

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    C'est parce que tu as ajouté le listener deux fois.

    P.S. Fais des efforts de français, s'il te plaît.

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    Merci pour la remarque concernant le français,
    et pour la partie resolution du probleme voila mon code de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
         //mListSRubrique est name de ma jlist
     
      mListSRubrique.addListSelectionListener(new ListSelectionListener() {
                    public void valueChanged(ListSelectionEvent e) {
                          ValueListSelected(e);
                      }
                  }); 
     
      public void ValueListSelected(ListSelectionEvent e){
          JList source = (JList)e.getSource();
          System.out.print("**************developpez.com *****************\n");
      }

  10. #10
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    tu dois avoir un des deux appels a valueChanged pour lequel l'évènement ListSelectionEvent a sa propriété 'valueIsAdjusting' égale a true. regarde le résultat de getValueIsAdjusting() sur ton évènement.

  11. #11
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    Merci le probleme de l'execution est résolu, sa marche tres bien mais je veux que le nombre de clique sera 2.
    c&d je clique deux fois avec la souris
    j'ai cherché la proprieté getclickcount mais j'ai pas trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(e.getClickCount()==2)
    Merci pour vos aides

  12. #12
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    c'était bien lié a 'valueIsAdjusting' finalement?

    Pour ton autre question, il va falloir que tu te crées ton propre évènement... on sait jamais propose l'idée aux mecs de Sun, il seront sans doute ravi.

  13. #13
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    Oui Merci
    pour celui de "valueIsAdjusting" c'est resolu je vais chercher maintenant sur resoudre le deuxieme probleme "double clique"
    Merci pour les informations

  14. #14
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    comment je peux faire pour créer un evenement de double clique sur jlist

    j'ai tenter de faire cette tranche de code en affichant un message mais aucune resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
       public void mouseClicked(MouseEvent e) {
            if(e.getClickCount()==2){ //teste sur le nombre des clicks
            if(e.getSource()instanceof JTreeTable) {  //teste sur l'instance
                  int ligne=mTreeTablePanel.mTreeTable.rowAtPoint(e.getPoint());
                  mTreeTablePanel.mTreeTable.setRowSelectionInterval(ligne,ligne);
                  int ligne1=mTreeTablePanel.mTreeTable.getSelectedRow();
                  if (ligne1 != -1) {
                      if(mTreeTablePanel.mTreeTable.getTree().isExpanded(ligne)){
                          mTreeTablePanel.mTreeTable.getTree().collapseRow(ligne);
                      }
                      else {
                         mTreeTablePanel.mTreeTable.getTree().expandRow(ligne);
                           } 
                     // TRAITEMENT DE DOUBLE CLICK SUR LES PERES DE TREE
                     if(mTreeTablePanel.mTreeTable.getTree().isExpanded(ligne)||mTreeTablePanel.mTreeTable.getTree().isCollapsed(ligne)) {
                         TreePath path = mTreeTablePanel.mTreeTable.getTree().getPathForRow(ligne1);
                         Node node = (Node)path.getLastPathComponent();
                         if (node.getLibelle() != null) {
                         DoubleClickAfficher(node.getLibelle());
                         System.out.print("la valeur de node.getLibelle :"+node.getLibelle()+"\n\n\n");
                         mTreeTablePanel.mTreeTable.getTree().expandRow(ligne);
                         }
                       }
                      TreePath path = mTreeTablePanel.mTreeTable.getTree().getPathForRow(ligne1);
                      Node node = (Node)path.getLastPathComponent();
                      if (node.getCle() != null) {
                      afficher(node.getCle());
                      }
                  }
              }
         // partie de test 
              else{
                  mListSRubrique = (JList)e.getSource();
                  System.out.print("//////////////" +lm.getSize()+"//////////\n");
              }
           }
        }
    j'attend votre aide
    Merci

  15. #15
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut
    bjr, personne n'a de solution donc a ce probleme ou meme une idée pour commencer les tests et à faire un rafraichissement de la memoire et Merci

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

Discussions similaires

  1. Evenement sur JList
    Par pendoRa dans le forum Composants
    Réponses: 2
    Dernier message: 01/03/2011, 11h50
  2. Evenement sur une JList
    Par Milie3415 dans le forum Composants
    Réponses: 1
    Dernier message: 06/02/2008, 15h54
  3. Evenements sur des JLabel dans une JList
    Par Tibo dans le forum Composants
    Réponses: 6
    Dernier message: 30/06/2006, 12h06
  4. Evenement sur les barres de défilement d'une ScrollBox
    Par Nico118 dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/05/2004, 15h56
  5. [FLASH MX 2004] [ecouteur] evenements sur un clip
    Par marco_ dans le forum Flash
    Réponses: 2
    Dernier message: 30/04/2004, 14h28

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