wie man name der Schaltfläche beim klicken " - Ereignis in java
Ich will den Namen des button-Objekts auf der Schaltfläche mit swing
Ich bin implementieren Sie den folgenden code
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) ;
}
}
In die variable s bin ich immer der Befehl Wert der Taste, aber ich will den Namen der Schaltfläche, wie b1 oder b2
wie kann ich diese
- do u wollen zu bekommen, die Referenzen oder die Beschriftung der Tasten ?
- ich möchte den Namen der Taste nicht die Bezeichnung der Tasten
- Was meinst du mit "Namen"? In deinem Beispiel, was sind die Namen?
- 1) Fügen Sie einen separaten Hörer (oder
Action
) jeder Taste. Problem verschwindet. Beachten Sie, dassb1
ist nicht der "name" eine beliebige Taste im code. Keine der Tasten hat ein benutzerdefinierter name. 2) Nur eine dieser Schaltflächen sichtbar wäre. 3) Bitte verwenden Sie eine einheitliche und logische Einzug für code-Blöcke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
ae.getSource()
Methode, um das button-Objekt selbst. So etwas wie:Sind Sie bittet darum, den Namen der Variablen, etwas, dass Sie sollten nicht werden wollen, zu bekommen, wie es ist irreführend und ist nicht wirklich wichtig und fast nicht vorhanden in den kompilierten code. Stattdessen sollten Sie konzentrieren sich auf immer ein Objekt verweist, keine Variablen-Namen. Wenn Sie assoziieren Sie ein Objekt mit einem String, eine saubere Art und Weise, dies zu tun ist durch die Verwendung einer Karte, wie eine
HashMap<String, MyType>
oderHashMap<MyType, String>
je nachdem, was Sie wünschen, zu verwenden als den Schlüssel, aber seien Sie nicht zu viel Vertrauen auf variable Namen, da nicht-Finale Variablen ändern können, Verweise an der Tropfen einen Hut, und Objekte bezeichnet werden, die durch mehr als eine variable.Zum Beispiel in dem folgenden code:
die variable name ist die Namen? Beide b1 und b2 beziehen sich auf den gleichen genauen JButton-Objekt.
Und hier:
Was ist der name der variable für die erste JButton-Objekt? Spielt es eine Rolle, dass die b1-variable bezieht sich nicht auf das original Objekt?
Wieder nicht, setzen Sie Ihren glauben in Variablennamen, wie Sie oft in die Irre führen.
Wenn Sie müssen den Namen, es ist die Funktion, um es zu bekommen:
getName
aber Sie müssen verwenden Sie die setName zu.
Wenn Sie möchten, um die Tasten b1, b2 können Sie ae.getSource().
Wenn Sie wollen die Bezeichnungen der Tasten, die Sie verwenden können, ae.getName()