Ajouter une action à un JButton lors de l'utilisation d'une boucle for

Je suis en train d'ajouter dynamiquement des boutons (JButtons), ce qui change des noms à chaque fois. - Je le faire avec une boucle for et n'est pas vraiment problématique. mais lors de l'ajout d'une action de l'auditeur ou de l'identification qui suis appuyé sur le bouton, c'est quand les choses ne fonctionnent pas si bon.

MyFrame.java

import javax.swing.*;
import java.awt.event.*;
import java.awt.GridLayout;
public class MyFrame extends JFrame implements ActionListener 
{
private JPanel panel;
private static JButton[] buttons  = new JButton[18];
//set all static calculate JButtons
private static JButton equalsBtn, addBtn, subBtn, multiBtn, divBtn, clearBtn, plusMinusBtn, decimalBtn;
//set all static number JBtuttons
private static JButton zeroBtn, oneBtn, twoBtn, threeBtn, fourBtn, fiveBtn, sixBtn, sevenBtn, eightBtn, nineBtn;
private static JTextField resultField;
//numOne is the first row of figures en the second numSecond is the second row
private static double numOne, numSecond, result;
private static double plusMinus;
private static int addClick = 0, subClick = 0, multiClick = 0, divClick = 0;
private static int clearField;
public MyFrame() {
//configure the JFrame
super("Rekennen maar!");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setSize(230, 370);
setLocationRelativeTo(null);
//confugure the JPanel
panel = new JPanel();
panel.setSize(230, 370);
panel.setLayout(new GridLayout(5, 0));
//array string whit all the button names
String a_btnNames[] = {"clearBtn", "plusMinusBtn", "divBtn", "multiBtn", "sevenBtn", "eightBtn", "nineBtn", "subBtn", "fourBtn", "fiveBtn", "sixBtn",                               "addBtn", "oneBtn", "twoBtn", "threeBtn", "equalsBtn", "zeroBtn", "decimalBtn"};
//array String whit all button characters
String a_btnCharts[] = {"C", "+/-", "/", "*", "7", "8", "9", "-", "4", "5", "6", "+", "1", "2", "3", "=", "0", "."};
for(int i = 0; i < buttons.length; i++)
{
//make new button name 
buttons[i]  = new JButton(a_btnNames[i]);
//add button to panel
panel.add(new JButton(a_btnCharts[i]));
//System.out.println(buttons[i]);
}
//add panel when he's filled 
add(panel);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
//press the button
if ( e.getSource() == ...... ) {
System.out.println("123");  
}   
} 
}

Main.java

public class Main {
public static void main(String[] arg) {
MyFrame mf = new MyFrame();
}
}
Pourquoi utilisez-vous new JButton("" + a_btnNames[i]);? new JButton(a_btnNames[i]); pourrait fonctionner tout aussi bien. De Plus, vous ne créez pas de buttons.length boutons, mais buttons.length*2. Essayez d'utiliser buttons[i]=new JButton(...); panel.add(buttons[i])

OriginalL'auteur Wbcreators Crea | 2013-11-27