H
hans
Gast
Hi,
ich will ein kleines Spiel programmieren, bei dem ich eine Fläche von Buttons habe, ähnlich wie z.B. in Minesweeper.
Wenn ich jetzt eine Spielfläche von 10x10 Feldern nehme, muss ich schon 100 Buttons initialisieren, mit ActionListener versehen, Größe festlegen usw.... für ein recht einfaches Layout brauche ich ca 600 Zeile Quellcode.
Ich habe mal versucht, die JButtons über eine Schleife zu intialisieren, für ein 10X10 Feld so in der Art:
Das klappt soweit, das er mir ein Layout mit 100 Buttons erstellt.
Jetzt kann ich allerdings die Buttons nicht per ActionListener abfrage, da nur noch der letzte erzeugte JButton "button" heisst.
Gibt es eine Möglichkeit dem ActionListener klar zu machen, er soll eine bestimmte Aktion ausführen, wenn irgendein Button aus dem JPanel buttonPane gedrückt wurde? Oder kann man das ganze irgendwie anders lösen?
Wenn das möglich wäre, würde ich mir eine Ableitung von JButton schreiben, die noch eine x- und eine y-Koordinate hat, und dann fragt der ActionListener nur noch die Koordinaten ab, und führt dann dementsprechend seine Aktionen aus.
gruss,
hans
ich will ein kleines Spiel programmieren, bei dem ich eine Fläche von Buttons habe, ähnlich wie z.B. in Minesweeper.
Wenn ich jetzt eine Spielfläche von 10x10 Feldern nehme, muss ich schon 100 Buttons initialisieren, mit ActionListener versehen, Größe festlegen usw.... für ein recht einfaches Layout brauche ich ca 600 Zeile Quellcode.
Ich habe mal versucht, die JButtons über eine Schleife zu intialisieren, für ein 10X10 Feld so in der Art:
Code:
for (int i=0; i<10; i++)
{
for (int j=0; j<10; j++)
{
JButton button = new JButton("");
button.addActionListener(this);
buttonPane.add(button);
}
}
Das klappt soweit, das er mir ein Layout mit 100 Buttons erstellt.
Jetzt kann ich allerdings die Buttons nicht per ActionListener abfrage, da nur noch der letzte erzeugte JButton "button" heisst.
Gibt es eine Möglichkeit dem ActionListener klar zu machen, er soll eine bestimmte Aktion ausführen, wenn irgendein Button aus dem JPanel buttonPane gedrückt wurde? Oder kann man das ganze irgendwie anders lösen?
Wenn das möglich wäre, würde ich mir eine Ableitung von JButton schreiben, die noch eine x- und eine y-Koordinate hat, und dann fragt der ActionListener nur noch die Koordinaten ab, und führt dann dementsprechend seine Aktionen aus.
gruss,
hans