Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3182 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Listener sur une liste de JButton

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Listener sur une liste de JButton

n°745377
JBs
Posté le 30-05-2004 à 18:42:50  profilanswer
 

Bonjour, dans mon programme, je dois ajouter un listener à un bouton qui est répété plusieurs fois (listing de données).
 
Le listing de données provient d'un Vecteur, à chaque entrée lue, un bouton DELETE y est ajouté.
 
Le nombre d'Objets (d'entrées) qu'il peut y avoir dans le Vecteur peut varier.
 
Mon problème est d'ajouter un listener sur ces boutons DELETE qui, en fonction du boutons sur lequel l'utilisateur va cliquer, supprimera l'objet auquel il est associé dans le Vecteur.
 
J'ai bien réussi a créer un Listener de sorte à ce que si l'on clique sur le bouton DELETE (n'importe lequel) il effectue une action mais ce que je n'arrive pas à faire, c'est récupérer l'information concernant le bouton qui a été cliqué (à quel objet dans le vecteur était il associé ?).
 
Voila le code que j'ai :
 

Code :
  1. for(int i = 0; i < answers.size() ; i++)
  2.         {
  3.           gbc.gridy++;
  4.           Panel_Quest.add(new JLabel(i+1 + ". " ), gbc);
  5.           ButtonList Btn_List = new ButtonList("Delete", i);
  6.          
  7. [....]
  8.           Panel_Quest.add(Btn_List, gbc);
  9.           Btn_List.removeActionListener(this);
  10.           Btn_List.setActionCommand("DELETE_ANSWER" );
  11.           Btn_List.addActionListener(this);
  12.           gbc.gridx = 0;
  13.         }


 
Le bouton est issu d'une classe ButtonList qui me permet d'associer un "ID" à chacun d'eux, cet ID correspond en fait à mon numéro d'itération dans la boucle for du dessus. Je ne sais pas si c'est la bonne méthode à mettre en oeuvre mais c'est la seule que j'ai réussi à trouver :( Comme je l'ai notifié plus haut, je n'arrive pas à récupérer cet ID associé au bouton cliqué une fois arrivé dans l'action à effectuer.
 

Code :
  1. package common.components;
  2. import javax.swing.*;
  3. public class ButtonList extends JButton
  4. {
  5.   private int ID;
  6.   private String button_text;
  7.  
  8.   public ButtonList(String btn_name, int btn_id)
  9.   {
  10.     button_text = new String();
  11.    
  12.     SetID(btn_id);
  13.     SetName(btn_name);
  14.     super.setText(button_text);
  15.   }
  16.  
  17.   public void SetID(int btn_id)
  18.   {
  19.     ID = btn_id;
  20.   }
  21.  
  22.   public void SetName(String btn_name)
  23.   {
  24.     button_text = btn_name;
  25.   }
  26.  
  27.   public int GetID()
  28.   {
  29.     return ID;
  30.   }
  31.  
  32.   public String GetText()
  33.   {
  34.     return button_text;
  35.   }
  36. }


 
Si qqun avait une idée concernant la possibilité de récupérer plus tard l'ID ? Je suis preneur ;)
Peut être même que toute la méthode mise en oeuvre est a changer ... Je suis a l'écoute de toutes les solutions.


Message édité par JBs le 30-05-2004 à 18:50:39
mood
Publicité
Posté le 30-05-2004 à 18:42:50  profilanswer
 

n°745817
Erkethan
Posté le 31-05-2004 à 01:40:30  profilanswer
 

Gestionnaire d'evenement du bouton :

Btn_List.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent evt)
 { cliquer(evt);
 }
});


 
Fonction récuperant le clic :

public void cliquer(ActionEvent evt)
{ int ID = ((ButtonList) evt.getSource()).GetID();
 [ton code]
}


 
Voili voilou, ID dans la méthode cliquer possède l'id du bouton cliqué.  :)

n°746169
JBs
Posté le 31-05-2004 à 14:55:50  profilanswer
 

merci bcp :jap:

n°746176
Jubijub
Parce que je le VD bien
Posté le 31-05-2004 à 15:02:22  profilanswer
 

met toi aux conventions java...
 
btn_name ==> buttonName : plus explicite, et plus standard...si tu suis ces conventions et que par ex je dois reprendre ton code, je sais qu'en faisant un getButtonName() je suis certain d'avoir qqc...ca permet de pas se taper la doc de l'api tt les 5 sec pour voir le nom que t'a donné à tes variables...
 
en ce moment je maintiens du code pourri, les variables sont préfixées selon leur origine, et selon leur type, genre _strName, et des fois les getters et setters ont pas les même nom...
 
c horrible à maintenir, sans eclipse je me serais déjà pendu...


---------------
Jubi Photos : Flickr - 500px

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Listener sur une liste de JButton

 

Sujets relatifs
[C++] Afficher la liste de tout les périfériques du systèmeliste de widgets
Liste auto-actualisable[PHP/HTML] Sélectionner un item par défaut dans une liste déroulante
Liste de fichiersListe des languages de programmation. [Scriptol vous connaissez?]
choix dans une liste et affecter les cellules[java] Fréquence des itérations dans un Listener
java- lire une liste dans un fichier[Compression DivX En Système Répartis] Multiple thread listener ?
Plus de sujets relatifs à : Listener sur une liste de JButton


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR