List<JButton> buttons = new ArrayList<JButton>();
int anzahlButtons = 20;
JButton button;
for (int i = 0; i < anzahlButtons; i++)
{
button = new JButton("Button" + i);
buttons.add(button);
}
int x;
final JButton[] btn = new JButton[x];
for(int i = 1; i<=9; i++){
String name = "btn" +(i+1);
btn[i] = new JButton(name);
btn[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(spieler == 1){
btn[i].setText("O");
btn[i].setFont(new Font("TimesNewRoman", Font.BOLD, 30));
btn[i].setEnabled(false);
spieler = 2;
JOptionPane.showMessageDialog(contentPane, txt2.getText()+ " ist dran!",
"", JOptionPane.INFORMATION_MESSAGE);
}
else
if(spieler == 2){
btn[i].setText("+");
btn[i].setFont(new Font("TimesNewRoman", Font.BOLD, 30));
btn[i].setEnabled(false);
spieler = 1;
JOptionPane.showMessageDialog(contentPane, txt1.getText()+ " ist dran!",
"", JOptionPane.INFORMATION_MESSAGE);
}
mntm_neu.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
btn[i].setEnabled(true);
btn[i].setText("");
}
});
}
});
contentPane.add(btn);
final JButton[] btn = new JButton[x];
for(int i = 0; i<= btn.length; i++){
...
}
public class Name implements ActionListener{
private final JButton[] btn = new JButton[ x];
private void initButtons(){
for(int i = 0; i<= btn.length; i++){
String buttonname ="button" +(i +1);
btn[ i] =new JButton( buttonname);
btn[ i].addActionListener( this);
}
}
@Override
public void actionPerformed( ActionEvent ae){
if( ae.getSource() instanceof JButton){
// rausfinden welcher button es war und die gewünschte action durchführen, vlt kannst du ja
// in ein seperaten array noch die hashcodes speichern, und dagegen prüfen welcher button es
// war, der das ae ausgelöst hat
} else{}
}
Wenn ich zum Beispiel denn Namen immer um eins erhöhe, muss das doch bestimmt einfacher gehen?
Also: btn1, btn2, ..., btn9
Dann habe ich noch eine Frage: Wie kann ich dann bei einen von diesen Buttons etwas ändern: Text, Sichtbarkeit, ... .
Das Problem ist jetzt, dass ab dem ActionListener alles falsch ist!
wie müsste dann der weitere Code aussehen?