CustomMouseListener als lokale Klasse implementiert

dadurch kann auf das Zuweisen der CustomMouseListener mit Hilfe des Arrays cmls[] verzichtet werden
This commit is contained in:
Marc Koch 2020-04-27 17:40:24 +02:00
parent 2f2365a025
commit bd5c773204
Signed by: marc
GPG Key ID: AC2D4E00990A6767
1 changed files with 16 additions and 34 deletions

View File

@ -12,11 +12,6 @@ public class Zug {
private static int zugNummer = 0; private static int zugNummer = 0;
private static Spieler spieler; private static Spieler spieler;
private static boolean zugLaeuft; private static boolean zugLaeuft;
private static CustomMouseListener[] cmls = new CustomMouseListener[9];
public Zug() {
createMouseListeners();
}
public static void setZugNummer(int zugNummer) { public static void setZugNummer(int zugNummer) {
Zug.zugNummer = zugNummer; Zug.zugNummer = zugNummer;
@ -36,8 +31,7 @@ public class Zug {
// Mouselistener auf Felder setzen, die noch nicht gesetzt wurden // Mouselistener auf Felder setzen, die noch nicht gesetzt wurden
for (int i = 0; i < spielfeld.getFelder().length; i++) { for (int i = 0; i < spielfeld.getFelder().length; i++) {
if (!spielfeld.getFelder()[i].isGesetzt()) { if (!spielfeld.getFelder()[i].isGesetzt()) {
cmls[i].setSpieler(spieler); spielfeld.getFelder()[i].getLabel().addMouseListener(new CustomMouseListener(i));
spielfeld.getFelder()[i].getLabel().addMouseListener(cmls[i]);
} }
} }
@ -52,14 +46,25 @@ public class Zug {
// MouseListener von allen Feldern entfernen // MouseListener von allen Feldern entfernen
for (int i = 0; i < spielfeld.getFelder().length; i++) { for (int i = 0; i < spielfeld.getFelder().length; i++) {
spielfeld.getFelder()[i].getLabel().removeMouseListener(cmls[i]); spielfeld.getFelder()[i].getLabel().removeMouseListener(new CustomMouseListener(i));
} }
} }
public static void createMouseListeners() { // Lokale Klasse für CustomMouseListener
for (int i = 0; i < spielfeld.getFelder().length; i++) { static class CustomMouseListener extends MouseAdapter {
cmls[i] = new CustomMouseListener(f, spielfeld.getFelder()[i]);
int i;
public CustomMouseListener(int i) {
this.i = i;
}
// Auf Setzen des Feldes prüfen und ggf. Form zeichnen lassen
@Override
public void mouseClicked(MouseEvent mouseEvent) {
spielfeld.getFelder()[i].setZeichen(spieler.getForm());
Zug.setZugLaeuft(false);
} }
} }
@ -82,27 +87,4 @@ public class Zug {
} }
class CustomMouseListener extends MouseAdapter {
private Fenster f;
private Feld feld;
private Spieler spieler;
public CustomMouseListener(Fenster f, Feld feld) {
this.f = f;
this.feld = feld;
}
public void setSpieler(Spieler spieler) {
this.spieler = spieler;
}
// Auf Setzen des Feldes prüfen und ggf. Form zeichnen lassen
@Override
public void mouseClicked(MouseEvent mouseEvent) {
this.feld.setZeichen(spieler.getForm());
Zug.setZugLaeuft(false);
}
}