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 :

listener +jbutton +jlist


Sujet :

Composants Java

  1. #1
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Par défaut listener +jbutton +jlist
    bonjour
    j'ai une interface graphique avec deux JLists l1 et l2 et un JButton, je veux mettre un listener sur le JButton pour que qd je clique dessus, l'élément séléctionné de la JList l1 vienne s ajouter dans la liste l2, mais ça ne marche pas....
    voici le code en java (v est le vecteur qui gènère l2)

    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
    import java.awt.event.ActionListener; 
    import java.awt.event.ActionEvent; 
    import javax.swing.JList;
    import javax.swing.JTextArea;
     
    public void ajouter_actionPerformed(ActionEvent event)  { 
        	    Object s = new Object();
        	    s = l1.getSelectedValue();
        	    v.addElement(s);
     
        	  } 
     
     
    public class listener1  { 
      private JList l1;
      private JList l2;
      public listener1(JList maListe, JList monText) {
    	  l1 = maListe;
    	  l2 = monText;
    	  }
     
      class MaFenetre_search_actionAdapter implements java.awt.event.ActionListener {
    	  MaFenetre adaptee;
     
    	  MaFenetre_search_actionAdapter(MaFenetre adaptee) {
    	     this.adaptee = adaptee;
    	  }
    	  public void actionPerformed(ActionEvent event) {
    	     adaptee.ajouter_actionPerformed(event);
    	  }
    	  }
    et dans la classe MaFenetre j'ai mis ce bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     JButton b6 = new JButton("Ajouter");
        	 b6.addActionListener(new MaFenetre_search_actionAdapter(this));
    comme c'est le 1er listener que je pose de ma vie...ça m étonnerais pas que ça soit tout foireux...merci d'avance pour votre aide

  2. #2
    Membre chevronné Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Par défaut
    Bonjour,
    Euh ton code doit pas être dans le bon ordre je pense, ou il manque des bouts.

    Tu as deux solutions, soit creer ton model de JList (en etendant DefaultListModel)
    ou alors utiliser la méthode setListData des JList et luis passer ton vector

    La méthode avec le modele me semble la plus propre

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    j'ai pas trop compris ton code mais je pense que tu cherche compliqué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void ajouter_actionPerformed(ActionEvent event)  { 
             if(event.getSource==b6){
                    defaultModelList2.addElement(list1.getSelectedValue());
             }
    }
    bien sur il faut que tu crées tes Jlist avec des model exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DefaultModelList modelListe = new DefaultModelList();
    JListe l1 = new JList(modelListe);
    et pour remplir ta liste tu passe par ton model

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    modelListe.addElement("toto");
    modelListe.addElement("tata");
    ...

  4. #4
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Par défaut
    bonsoir,
    merci bcp pour vos réponses, j ai fait les changements que vous m avez proposés, je n'ai plus d erreurs mais rien ne se passe non plus quand je clique sur mon bouton...
    voici le code corrigé:

    Un bout du code de ma classe "MaFenetre"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DefaultListModel listModel = new DefaultListModel();
        	 JList l1 = new JList(listModel);
    DefaultListModel v = new DefaultListModel();
        JList l2 = new JList (v);
    JButton b6 = new JButton("Ajouter");
        	 b6.addActionListener(this);

    Et puis le listener:

    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
    class Ajouter implements ActionListener{
         public void actionPerformed(ActionEvent event)  { 
             if(event.getSource().equals(b6)){
                    v.addElement(l.getSelectedValue());
             }
         }
    }
         public interface ActionListener extends EventListener{
        	 public void actionPerformed(ActionEvent event);
         }
     
     
     
     
    	public static void main (String [] arg ){
    		MaFenetre mainWindow = new MaFenetre();

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2008
    Messages : 43
    Par défaut
    Salut,

    Peux-tu essayer ça?
    Remplace ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    b6.addActionListener(this);
    Par ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    b6.addActionListener(new Ajouter());

  6. #6
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Par défaut
    ben quand je fais ça eclipse me dit que c'est une erreur ...il me propose de changer en b6.addActionListener(new (ActionListener) Ajouter); mais meme quand je fais ça il me dit qu'il y a toujours une erreur mais sans autre proposition..... (deprime..)

  7. #7
    Membre chevronné Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Par défaut
    si tu veux mettre this dans le addActionPerformed, il faut que ce soit ta class MaFenetre qui implemente ActionListener.

    Mais je dois rater un truc parce que ton code ne devrait pas compiler, parce que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v.addElement(l.getSelectedValue());
    le v est declaré dans MaFenetre et tu l'utilise dans la class ajouter et tu utilise la variable l qui doit plutot être l2 et qui est également déclaré dans MaFenetre.
    Elle est ou ta class Ajouter ?

    Et je ne comprend pas ce que ce code vient faire là ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public interface ActionListener extends EventListener{
        	 public void actionPerformed(ActionEvent event);
         }

  8. #8
    Membre chevronné Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Par défaut
    Un truc comme cà devrait fonctionner
    La classe implemente ActionListener
    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
     
    private DefaultListModel model1 = null;
        private DefaultListModel model2 = null;
        private JButton btnAdd = null;
        private JList liste1  = null;
        private JList liste2  = null;
        private void tmp()
        {
            model1 = new DefaultListModel();
            model1.addElement("toto");
            model2 = new DefaultListModel();
            liste1 = new JList(model1);
            liste2 = new JList(model2);
     
            JButton btnAdd = new JButton("Ajouter");
            btnAdd.addActionListener(this);
     
        }
    et le ActionPerformed
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void actionPerformed(ActionEvent e) {
     
            if (e.getSource().equals(btnAdd))
            {
                model2.addElement(liste1.getSelectedValue());
            }
    }
    J'ai pas testé, mais je pense que cà marche, après tu peux adapter avec ta classe Ajouter

  9. #9
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Par défaut
    c'est bon je viens de résoudre le problème...merci tout le monde

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

Discussions similaires

  1. Mouse Listener sur JList non catché ponctuellement
    Par Akryos-K dans le forum Composants
    Réponses: 3
    Dernier message: 04/05/2011, 08h48
  2. JList listener de selection
    Par Invité dans le forum Composants
    Réponses: 2
    Dernier message: 08/06/2006, 08h35
  3. Réponses: 6
    Dernier message: 29/03/2006, 17h23
  4. [Jlist][DefaultListModel] Listener sur ajout d'éléments
    Par Invité dans le forum Composants
    Réponses: 2
    Dernier message: 23/03/2006, 14h32
  5. [JList] problème avec 2 listeners
    Par papy_tergnier dans le forum Composants
    Réponses: 2
    Dernier message: 21/06/2004, 10h05

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