Hallo Freunde,
ich bins wieder und schwer in Not mit meinem Projekt "Schiffe versenken".
Könnt ihr mir vielleicht folgendes Phänomen erklären!
Ich habe zwei Matrizen aus JButtons gebastelt mit jeweils eigenen JPanels.
Links die Matrix für den Spieler und rechts die Matrix für den Computergegner.
Im Hintergrund habe ich zwei boolean Arrays, die die gesetzen Schiffe mit "protokolieren".
Soweit so gut. Spieler kann seine Schiffe setzen und der Computer setzt auch seine Schiffe auf sein Boolean Array.
Auf die Buttons des Spielers und der Computers habe ich ActionListener gesetzt, damit ich merke wann man einen Knopf drückt.
Nun ist es so, das ich das ganze Ding mal zwischenzeitlich testen wollte um zu sehen ob es auch hinhaut.
Mein Ziel ist es, zu sehen, ob ich die Schiffe des Computers auf seiner Matrix finden, wenn ich auf die auf seine Buttons drücke. Es sollte so sein, dass die Buttons auf der Computer Matrix, je nachdem, ob getroffen wurde oder nicht, die Hintergrundfarbe anpassen sollen.
Naja, das tun sie nicht. Stattdessen werden die Hintergrundfarben meiner Spielermatrix angepasst?????????????
Könnt ihr mir helfen, raus zufinden, woran das liegen könnte!!
Anbei der Code:
Hier prüfe ich die Schiffe die der Spieler gesetzt hat.
Hier prüfe ich die Schiffe die der Computer gesetzt hat.
Könnt ihr mit bitte helfen. Bin schon beim Verzweifeln.
Großes DANKESCHÖN an alle die mir weiterhelfen können oder es versuchen :applaus:
LG
Adriano Celentano
ich bins wieder und schwer in Not mit meinem Projekt "Schiffe versenken".
Könnt ihr mir vielleicht folgendes Phänomen erklären!
Ich habe zwei Matrizen aus JButtons gebastelt mit jeweils eigenen JPanels.
Links die Matrix für den Spieler und rechts die Matrix für den Computergegner.
Im Hintergrund habe ich zwei boolean Arrays, die die gesetzen Schiffe mit "protokolieren".
Soweit so gut. Spieler kann seine Schiffe setzen und der Computer setzt auch seine Schiffe auf sein Boolean Array.
Auf die Buttons des Spielers und der Computers habe ich ActionListener gesetzt, damit ich merke wann man einen Knopf drückt.
Nun ist es so, das ich das ganze Ding mal zwischenzeitlich testen wollte um zu sehen ob es auch hinhaut.
Mein Ziel ist es, zu sehen, ob ich die Schiffe des Computers auf seiner Matrix finden, wenn ich auf die auf seine Buttons drücke. Es sollte so sein, dass die Buttons auf der Computer Matrix, je nachdem, ob getroffen wurde oder nicht, die Hintergrundfarbe anpassen sollen.
Naja, das tun sie nicht. Stattdessen werden die Hintergrundfarben meiner Spielermatrix angepasst?????????????
Könnt ihr mir helfen, raus zufinden, woran das liegen könnte!!
Anbei der Code:
Hier prüfe ich die Schiffe die der Spieler gesetzt hat.
Java:
btnNewButton_x.addActionListener(new ActionListener() {
// neuer ActionListener für die Button --> überprüft ob in der
// Array ein Eintrag vorhanden ist
final Component c = panel.getComponent(buttonNo);
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
int y = buttonNo / 10;
int x = buttonNo - (y * 10);
if ((field.getField_frei(x, y) == true)
) {
c.setBackground(Color.green);
} else {
// c.setBackground(Color.black);
}
}
});
Java:
// ======== Buttons für die Schiffe des Gegners =========
for (int y = 0; y <= 99; y++) {
final JButton btnNewButton2_y = new JButton("");
final int buttonNo2 = y;
System.out.println(btnNewButton2_y);
panel_1.add(btnNewButton2_y);
btnNewButton2_y.addActionListener(new ActionListener() {
final Component c2 = panel.getComponent(buttonNo2);
public void actionPerformed(ActionEvent e) {
int y = buttonNo2 / 10;
int x = buttonNo2 - (y * 10);
if (field_gegner.getField_frei_gegner(x,y) == true){
c2.setBackground(Color.red);
} else {
c2.setBackground(Color.cyan);
}
}
});
}
Könnt ihr mit bitte helfen. Bin schon beim Verzweifeln.
Großes DANKESCHÖN an alle die mir weiterhelfen können oder es versuchen :applaus:
LG
Adriano Celentano