Moin Moin
Ich steige gerade von Pascal auf Java um und baue mir gerade ein MineSweeper. Dafür habe ich auf ein jFrame ein paar JButtons gelegt, die ich in einem 2D array verwalte.
Jetzt muss ich natürlich auf einen Klick reagieren. So viel ich bis jetzt gelernt habe, muss ich dafür einen MouseListener schreiben.
Wenn ich die Buttons also setze, würde ich gerne etwa in dieser Art machen:
(i und j sind integer, mit denen ich mein Buttonarray durchlaufe)
Bei der if-Abfrage besteht aber das Problem, dass das Array, i und j, allesamt nicht final deklariert wurden. Da die Reaktion auf den Klick aber von i und j abhängt, stecke ich hier fest.
Wenn ich die Schleife über alle Buttons aber mit for (final int i=0, i<xCount;i++) durchlaufen lasse, bekomme ich Probleme mit dem i++, da ich ja auf eine finalVariable zugreife.
kann mir jemand sagen, wie ich da die Variablen reinbekomme?
Ich steige gerade von Pascal auf Java um und baue mir gerade ein MineSweeper. Dafür habe ich auf ein jFrame ein paar JButtons gelegt, die ich in einem 2D array verwalte.
Jetzt muss ich natürlich auf einen Klick reagieren. So viel ich bis jetzt gelernt habe, muss ich dafür einen MouseListener schreiben.
Wenn ich die Buttons also setze, würde ich gerne etwa in dieser Art machen:
(i und j sind integer, mit denen ich mein Buttonarray durchlaufe)
Code:
Buttons[i][j].addMouseListener( new MouseAdapter () {
@Override
public void mouseClicked( MouseEvent e) {
// Es wurde auf eine Bombe geklickt:
if (Bomb[i][j]==true) System.exit(0); // oder sowas
}
} );
Bei der if-Abfrage besteht aber das Problem, dass das Array, i und j, allesamt nicht final deklariert wurden. Da die Reaktion auf den Klick aber von i und j abhängt, stecke ich hier fest.
Wenn ich die Schleife über alle Buttons aber mit for (final int i=0, i<xCount;i++) durchlaufen lasse, bekomme ich Probleme mit dem i++, da ich ja auf eine finalVariable zugreife.
kann mir jemand sagen, wie ich da die Variablen reinbekomme?