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 :

Ecouteur : JList et JButton


Sujet :

Composants Java

  1. #1
    Invité
    Invité(e)
    Par défaut Ecouteur : JList et JButton
    Bonjour,

    j'ai un probleme a peu pres simple, mais malgre ce qu j'ai pu lire, je ne comprend pas :

    -J'ai une JList dans laquelle j'insere des url de fichier (via JFileChooser ou Dragn drop), geree par un vector
    -J'ai un bouton "valider" qui ..(suspens)...valide

    Je voudrait que le bouton valider soit grise si il y a 0 element dans la jlist (oudans le vector ) ...

    Je comprend pas sur quoi ajouter un listener (ListDataListener je pense), ni comment signifier a l'objet en question que je l ecoute...

    J'espere que vous m'avez compris.

  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,

    le plus simple est peut-être de passer par une classe anonyme comme ceci :
    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
    final JList maJList = new JList(monVector);
    final JButton monJButton = new JButton("Valider");
    maJList.getModel().addListDataListener(new ListDataListener() {
        public void contentsChanged(ListDataEvent e) {
          checkButton();
        }
        public void intervalAdded(ListDataEvent e) {
          checkButton();
        }
        public void intervalRemoved(ListDataEvent e) {
          checkButton();
        }
        private void checkButton() {
            monJButton.setEnabled(maJList.getModel().getSize() != 0);
        }
    });
    Dans une autre solution, la classe qui contient des références sur la JList et le JButton implémente l'interface ListDataListener et comporte le même code que la classe anonyme ci-dessus.
    "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
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup, j'ai une question pour bien comprendre :

    N'y a-t-il pas un moyen pour que l'on change des choses du cote du boutons (ici on ajoute quelque chose au modele)? Un peu comme quand on fait des click (il me semble), on ajoute un ecouteur sur un bouton a tout evenement de souris ...

  4. #4
    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
    Je ne suis pas sûr d'avoir compris ton message. En tout cas pour un JButton, il est plus pratique d'utiliser un ActionListener qui est appelé lors d'un clic. Le MouseListener est fait pour d'autres utilisations.
    "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.

  5. #5
    Invité
    Invité(e)
    Par défaut
    La dans la solution que tu m a donne j'ajoute quelque chose (ListDataListener en l occurence) a maJLsit.getModel().

    Je voudrais savoir si il existe des solution ou j'ajoute quelque chose a mon bouton ...

    J'ai pas encore tout bien compris, mes escuses si ma questions est debile.

  6. #6
    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
    Ok, alors dans le code que je t'ai donné, j'ajoute un Listener à la JList (plutôt à son ListModel). Ce Listener est un objet d'une classe anonyme qui implémente l'interface ListDataListener. Tu pourrais aussi définir une classe normale dans un fichier, qui implémente ListDataListener.

    Pour les JButton, c'est absolument la même chose, sauf que tu veux implémenter l'interface ActionListener au lieu de ListDataListener. En classe anonyme ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    monJButton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e){
        // le code à exécuter quand on clique sur le bouton
      }
    }
    Le principe des Listeners est extrêmement flexible. Tu peux en ajouter autant que tu veux à un composant, et tu peux ajouter le même Listener à plusieurs composants.

    Lorsque tu crées ta JList, tu peux ajouter tous les ListDataListeners que tu veux, et lorsque tu crées ton JButton, tu peux y ajouter tous les ActionListener que tu veux. Et même après leur création. Et le fait d'avoir un objet qui écoute la JList n'influe en rien la possibilité d'ajouter un Listener sur ton JButton.
    "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.

  7. #7
    Invité
    Invité(e)
    Par défaut
    D accord merci pour tout

    (j ai mis resolu)

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

Discussions similaires

  1. Aide ecouteur pour JList
    Par loooool92 dans le forum Composants
    Réponses: 1
    Dernier message: 13/01/2009, 23h31
  2. Jlist avec Jbutton
    Par cdrik59 dans le forum Composants
    Réponses: 10
    Dernier message: 07/05/2008, 20h42
  3. listener +jbutton +jlist
    Par zikos dans le forum Composants
    Réponses: 8
    Dernier message: 02/05/2008, 20h08
  4. Accéder à un JButton à l'intérieur d'une JList
    Par chache005 dans le forum Composants
    Réponses: 1
    Dernier message: 19/12/2007, 10h11
  5. Ecouteur JList qui s'execute n^n fois !
    Par gabule dans le forum Composants
    Réponses: 4
    Dernier message: 19/05/2006, 10h13

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