Recuperer le nom d'un bouton.

Messages postés
27
Date d'inscription
mardi 27 août 2002
Dernière intervention
12 mars 2004
- - Dernière réponse :  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++;
}
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
261
Date d'inscription
jeudi 5 septembre 2002
Dernière intervention
6 octobre 2005
1
Merci
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.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 105 internautes nous ont dit merci ce mois-ci

Commenter la réponse de JHelp
Messages postés
27
Date d'inscription
mardi 27 août 2002
Dernière intervention
12 mars 2004
0
Merci
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
Commenter la réponse de cs_bibe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.