cs_bibe
Messages postés27Date d'inscriptionmardi 27 août 2002StatutMembreDernière intervention12 mars 2004
-
20 sept. 2002 à 11:55
jysotech -
23 mars 2018 à 20:20
Bonjour,
Je fabrique une serie de bouton avec une boucle for
et je voudrais recuperer le nom du bouton sur le quel je clique.Je n'arrive a recuperer que le nom du dernier bouton.
voici la parti de code en question:
for (i=0;i<15;i++){
int j = 0;
int coordy = (j*32);
String sN_voiture = (String)vN_voiture.elementAt(i);
String sAnc_Num = (String)vAnc_Num.elementAt(i);
bt[j] = new Button(sAnc_Num);
bt[j].setFont(new Font("arial",Font.BOLD,14));
bt[j].setForeground(new Color(254,254,254));
bt[j].setBackground(new Color(220,0,0));
bt[j].setSize(30,20);
bt[j].setLocation(10,coordy);
bt[j].setName(sN_voiture);
bt[j].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ac){
Detail_edit2 fenetre2 = new Detail_edit2(bt[j].getName());
}});
add(bt[i]);
j++;
}
JHelp
Messages postés261Date d'inscriptionjeudi 5 septembre 2002StatutMembreDernière intervention 6 octobre 200511 20 sept. 2002 à 16:00
Ce qui ce passe est due à ta ligne :
Detail_edit2 fenetre2 = new Detail_edit2(bt[j].getName());
qui est dépendante de j.
Or j est modifier donc le resultat aussi.
En fait l'ActionEvent, que tu passes en paramètre de ton actionPerformed contient de multiples informations, dont le composant qui à généré cet évenement. C'est la méthode getSource.
Tu peux donc changer ta ligne en :
Button bouton=(Button)ac.getSource();
Detail_edit2 fenetre2 = new Detail_edit2(bouton.getName());
Si il ne s'agit que de transmettre une chaine de caractéres, tu peux utiliser une autre solution qui te consomera moins de resources.
1)Tu implémente ActionListener sur ton porteur de boutons.
2)Tu ajoute la méthode :
public void actionPerformed(ActionEvent ae)
{
String chaine=ae.getActionCommand();
Detail_edit2 fenetre2 = new Detail_edit2(chaine);
}
3)bouton.setActionCommand(String texte)
pouur chaque bouton
4)bouton.addActionListeneer(this);
Cette méthode économise les resources puisque qu'on utilise un seul ActionListener au lieu d'autant qu'il y a de boutons
:)
Si quelque chose n'est pas clair n'ésite pas.
JHelp.
cs_bibe
Messages postés27Date d'inscriptionmardi 27 août 2002StatutMembreDernière intervention12 mars 2004 23 sept. 2002 à 10:41
Votre Login vous va si bien...
Merci JHelp j'ai essayer la première des solutions que tu m'a soumis, et ca marche très bien.
Je verrais les problème en ce qui concerne les ressources plus tard.
Merci encore, et bonne journée.
PS: J'aurais surement pleins d'autres questions.
BIBE
23 mars 2018 à 20:20