Ich habe unten stehende Hauptklasse sowie die Klassen Test und CorsiQuadrat. Beim Starten des Programms sollte, vereinfacht gesagt, das passieren: es geht ein Fenster auf mit blauen Quadraten von denen abwechselnd welche gelb aufleuchten. Funktioniert auch alles, nur das meine Quadrate nicht aufleuchten. Entscheidend ist die Zeile 18 test.testDurchfuehren(); in der Hauptklasse, die Zeileen 33 bis 37 in der Klasse Test:
und die Zeilen 13 bis 18 (Methode aufblinken() ) in der Klasse CorsiQuadrate. Durch Toggle Breakpoints habe ich herausgefunden, dass eigentlich alles wie gewünscht funktioniert. Die Methode aufleuchten() wird wie erwartet aufgerufen, und läuft ab. Nur in meiner GUI merke ich nichts davon (Quadrate bleiben blau).
Code:
for (int i=0; i<sequenz.length; i++){
if (sequenz[i] == 1) {
corsiBloecke.block1.aufblinken();
}
}
und die Zeilen 13 bis 18 (Methode aufblinken() ) in der Klasse CorsiQuadrate. Durch Toggle Breakpoints habe ich herausgefunden, dass eigentlich alles wie gewünscht funktioniert. Die Methode aufleuchten() wird wie erwartet aufgerufen, und läuft ab. Nur in meiner GUI merke ich nichts davon (Quadrate bleiben blau).
Java:
import java.util.ArrayList;
public class Main {
//Deklarationsteil
static Window window;
static CorsiBloecke corsiBloecke;
static Test test;
static VP vp;
public static void main(String args[]) throws Exception{
window = new Window();
vp=new VP(1); //id-Abfrage noch einbauen!
corsiBloecke = new CorsiBloecke();
test = new Test(2, corsiBloecke, window, vp);
test.testDurchfuehren();
}}
Java:
import java.util.ArrayList;
public class Test {
int[] sequenz;
int sequenzlaenge;
SequenzbehaelterCollection sequenzbehaelterCollection;
CorsiBloecke corsiBloecke;
int[] eingabesequenzVP;
boolean eingabeRichtig;
Window window;
VP vp;
//Konstruktor
public Test(int sequenzlaenge, CorsiBloecke corsiBloecke, Window window, VP vp){
this.window=window;
this.sequenzlaenge = sequenzlaenge;
this.corsiBloecke = corsiBloecke;
this.vp = vp;
eingabeRichtig = true;
}
public boolean testDurchfuehren() throws InterruptedException{
sequenzbehaelterCollection=vp.gibSequenzbehaelterCollection();
sequenz = sequenzbehaelterCollection.gibSequenz(sequenzlaenge);
for (int i=0; i<sequenz.length; i++){
if (sequenz[i] == 1) {
corsiBloecke.block1.aufblinken();
}
}
int g=0;
while (this.window.gebeEingabeBeendet() == false){
g++;
g--;
}
window.eingabeBeendetFalseSetzen();
eingabesequenzVP = corsiBloecke.gibEingabesequenzVP();
while (eingabeRichtig = true){
for (int j=0; j<(eingabesequenzVP.length)-1; j++) {
if (eingabesequenzVP[j] != sequenz[j]) {
eingabeRichtig = false;
}
}
}
vp.AktualisiereSequenzbehaelterCollection(sequenzbehaelterCollection);
return eingabeRichtig;
}
}
Java:
import java.awt.Color;
import javax.swing.JButton;
public class CorsiQuadrat extends JButton {
public CorsiQuadrat(String a) {
this.setBackground(Color.BLUE);
this.setText(a);
}
//Quadrat gelb einfärben für eine Sekunde
public void aufblinken() throws InterruptedException {
this.setBackground(Color.YELLOW);
Thread.sleep(1000);
this.setBackground(Color.BLUE);
Thread.sleep(1000);
}
}