Javaxswing interaction

Fermé
Danasintelecta - Modifié le 19 nov. 2018 à 16:07
Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 - 20 nov. 2018 à 09:30
Bonjour;
je travaille sur un programme. Lorsque je clique sur un premier bouton, l'action que je souhaite se déclenche, de même pour le second et pour les autres.
Le problème est que si je reviens cliquer sur bouton sur lequel j'avais déjà cliqué, l'action souhaitée ne se déclenche plus.

en voici le code



// Les conteneurs
JPanel pan = new JPanel();
JPanel pan2 = new JPanel();

//Les boutons

nature = new JButton( new ImageIcon( "images DI/nature.jpg" )),
histoire = new JButton( new ImageIcon( "images DI/histoire.jpg" )),
géographie = new JButton( new ImageIcon( "images DI/géographie.jpeg" ));



//les listes

String[] nat = {"eau", "terre", "air"};
JList listeNature = new JList(nat);


String[] hist = {"aitiquité","moyen age","temps modernes","temps contemporains"};
JList listehist = new JList(hist);


String[] geo = {"Afique","Amérique","Asie","Europe"};
JList listegeo = new JList(geo);




nature.addActionListener(btListener);
géographie.addActionListener(btListener);
histoire.addActionListener(btListener);



class btListener implements ActionListener{
   
   public void actionPerformed(ActionEvent arg0) {
    
    
   if(arg0.getSource()  ==  nature)
    
    { 
   pan.add(listenat);
     }



   if(arg0.getSource()  ==  geographie)
    
    { 
   pan.add(listegeo);
     }




   if(arg0.getSource()  ==  histoire)
    
    { 
   pan.add(listehist);
     }
    
  
             
   }
  
 }





Merci d'avance

1 réponse

Jithel Messages postés 843 Date d'inscription mercredi 20 juin 2018 Statut Membre Dernière intervention 31 août 2021 171
20 nov. 2018 à 09:30
La réponse est là :

https://stackoverflow.com/questions/29454055/how-to-add-a-component-multiple-times

Tu ne peux pas ajouter plusieurs fois la même instance d'un composant dans un JPanel. Il faut recréer l'instance plusieurs fois.

Attention, je pense qu'il y a une erreur
pan.add(listenat); // listenat n'existe pas. C'est pas listeNature plutôt ?
0