JButton-array ActionListener
Kurz gesagt, ich möchte zu sammeln eine Reihe von JButton
's in ein array, und erstellen Sie eine ActionListener
Klasse für das array.
Ich versuche zu schaffen, einen Taschenrechner, und alle die nummerierten Schaltflächen, wie "6", sind in einem JButton
array, da würde ich gerne input die Nummer des sets in eine temporäre int, und es wäre einfacher zu erstellen, eine Methode, anstelle von 10. Ich habe auch 40 anderen Tasten, die ich möchte, um die gleichen AUFTRAGGEBER, aber in einem anderen array, so wäre es viel einfacher und schneller zu setzen Sie diese in ein paar ActionListener
Methoden, bei denen die Tasten von Daten implementiert, die Methode.
dies ist der code den ich habe:
private JButton num0, num1, num2, num3, num4, num5, num6, num7, num8, num9;
private JButton numArray[] = {num0, num1, num2, num3, num4, num5, num6, num7, num8, num9};
public GUI(){
numArray.AddActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
}
});
}
InformationsquelleAutor Robert E Fry | 2013-07-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie erwägen, den Vorschlag von Newb Monade. Sie können jedoch mit den gleichen listener für alle buttons, wie im folgenden Beispiel.
String text = ((JButton) e.getSource()).getText();
kann ersetzt werden durchString text = e.getActionCommand();
1+Ja, ich hatte gedacht, dieses.Danke!!!
InformationsquelleAutor Paul Vargas
Haben Sie die richtige Idee. Jedoch, array-Objekte haben kein
addActionListener()
Methode. Sie muss hinzufügen einer action-listener zu jederJButton
individuell. Sie können den gleichen listener für jeden button, aber dann müssen Sie herausfinden, auf welche Schaltfläche geklickt wurde innerhalb deractionPerformed()
Methode. IMO, eine saubere Lösung ist, weisen Sie einen separaten Hörer zu jeder JButton, weil auf diese Weise jedes ActionListener wissen können, welche Zahl gedrückt wird, ohne zu prüfen, die Quelle des Ereignisses. Zum Beispiel, können Sie erstellen eineNumberButtonListener
Klasse, die dauert eineint
als einziges argument für seinen Konstruktor. Sie können dann erstellen Sie die JButtons und die entsprechendenNumberButtonListener
s zur gleichen Zeit in einer kleinen Schleife.InformationsquelleAutor Code-Apprentice
Ich hatte ein ähnliches problem mit einem 2D array von Schaltflächen für eine Partie "Vier gewinnt". Ich war in der Lage, verwenden Sie eine for-Schleife innerhalb von ActionListener zu testen, welche meiner Knöpfe gedrückt hatte. Der Schlüssel geändert wird, wird die toString () - Methode aus meiner Klasse button zur Versorgung des array-Elements als string:
Innerhalb der JPanel-Klasse definition:
...
...
Sorry das ist chaotisch. Ich habe noch nie gepostet auf hier vor.
InformationsquelleAutor Clive