Zeitverzögerung

gajupa

Grünschnabel
Hallo liebe Java-Gemeinde!
Ich möchte eine Zeitverzögerung in mein Programm (ein Kartenspiel) einbauen. Der Button pB[j] soll zuerst mit dem ImageIcon pK1 gefüllt werden und dann nach einer kurzen Zeit mit dem ImageIcon pKumgedreht. Leider übergeht er die erste Anweisung total und zeigt gleich pKumgedreht, allerdings schon mit Zeitverzögerung. Bei der println-Anweisung hingegen macht er es wunderbar: erst erscheint "gleich", dann "später" in der Konsole.
Hier ist der Quellcode-Ausschnitt:
Code:
        pB[j].setIcon(pK1);
        System.out.println("gleich!");
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {}
        pB[j].setIcon(pKumgedreht);
        System.out.println("später!");

Hast jemand eine Idee, woran das liegen könnte?
Schöne Grüße und tausend Dank für die Antwort!
 
Durch Thread.sleep() legst du den Thread schlafen der dafür dar ist die Oberfläche darzustellen, und damit kann das Icon zunächst nicht dargestellt werden und es wird nach dem sleep dann nur das andere Icon dargestellt.

Um das korrekt umzusetzen musst du dir einen eigenen Thread erstellen. In diesem kannst du dann deinen Code wie hier benutzen.
 
Zurück