comment obtenir un nom de bouton sur l'événement click en java
Je veux obtenir le nom de l'objet bouton en cliquant sur le bouton à l'aide de swing
Je mets en place le code suivant
class test extends JFrame implements ActionListener
{
JButton b1,b2;
test()
{
Container cp=this.getContentPane();
b1= new JButton("ok");
b2= new JButton("hi");
cp.add(b1);cp.add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
String s=ae.getActionCommand();
System.out.println("s is"+s) ;
}
}
Dans la variable s, je suis de commande de la valeur du bouton mais je veux obtenir le nom du bouton comme b1 ou b2
comment puis-je obtenir ce
u ne voulez obtenir les références ou les étiquettes des boutons ?
je veux obtenir les noms du bouton pas l'étiquette de boutons
Qu'entendez-vous les "noms"? Dans votre exemple, quels sont les noms?
1) poser un auditeur (ou le
je veux obtenir les noms du bouton pas l'étiquette de boutons
Qu'entendez-vous les "noms"? Dans votre exemple, quels sont les noms?
1) poser un auditeur (ou le
Action
) pour chaque bouton. Problème disparaît. Notez que b1
n'est pas le nom d'un bouton dans le code. Aucune de ces boutons a un nom défini par l'utilisateur. 2) que l'un de ces boutons visibles. 3) s'il vous Plaît utiliser de manière cohérente et logique de retrait pour les blocs de code.OriginalL'auteur Adesh singh | 2012-12-12
Vous devez vous connecter pour publier un commentaire.
Utiliser le
ae.getSource()
méthode pour obtenir le bouton de l'objet lui-même. Quelque chose comme:OriginalL'auteur Richard JP Le Guen
Vous vous posez au sujet d'obtenir le nom de la variable, quelque chose que vous devriez pas être désireux pour obtenir comme il est trompeuse et n'est pas vraiment important et presque n'existe pas dans le code compilé. Au lieu de cela, vous devriez être se concentrer sur l'obtention de références d'objet, pas de noms de variables. Si vous devez associer un objet à une Chaîne, un moyen propre de faire cela est d'utiliser une Carte comme un
HashMap<String, MyType>
ouHashMap<MyType, String>
selon laquelle vous désirez utiliser comme clé, mais encore, ne pas mettre trop de confiance sur les noms de variables, puisque d'autres variables final peut modifier les références à la baisse d'un chapeau, et les objets peuvent être visée par plus d'une variable.Par exemple, dans le code suivant:
dont le nom de variable est la nom? Les deux b1 et b2 reportez-vous à la même exacte JButton objet.
Et ici:
Quel est le nom de la variable pour la première JButton objet? Il n'importe que le b1 variable ne fait pas référence à cet objet original?
Encore, ne mettez pas votre foi dans les noms de variables comme ils vont souvent vous induire en erreur.
OriginalL'auteur Hovercraft Full Of Eels
Si vous avez besoin du nom, il y a la fonction pour l'obtenir:
getName
mais vous devez utiliser le setName trop.
OriginalL'auteur
Si vous voulez obtenir les boutons b1, b2, vous pouvez avoir ae.getSource().
Si vous voulez les noms des boutons que vous pouvez utiliser, ae.getName()
OriginalL'auteur Srinivas B