Problem mit Thread.sleep

Hallo zusammen,

folgendes Problem bekomme ich leider nicht gelöst:

In einem Java Programm rufe ich ein JDialog auf, in diesem Dialog wird eine Frage gestellt und kann durch drücken auf Buttons beantwortet werden. Wenn ein Button gedrückt wird soll dieser, je nachdem ob es der richtige oder Falsche ist, in Grün bzw in Rot seine Farbe ändern. Damit dies noch gesehen wird, benutze ich sleep um das Fenster noch 3 Sek zu erhalten und beenede es dann mit dispose.
Leider bleibt der Button während der sleep Zeit gedrückt und ändert somit erst seine Farbe nach dem Sleep wenn dann auch das Fenster geschlossen wird, wovon man garnichts mehr sieht.

Vllt noch zur Hilfe der Code Ausschnitt:

button.setBackground(Color.GREEN);
System.out.println(„Test“);
Thread.sleep(3000);
dialog.dispose;

Also „Test“ wird noch vor dem sleep ausgegeben aber der Button ändert seine Farbe leider nicht.

Freu mich über jede Antwort, schoneinmal danke im vorraus.

Grüße

Moien

Vllt noch zur Hilfe der Code Ausschnitt:

Der Code wird direkt vom Button-Handler aufgerufen. D.h. der Code wird vom AWT/swing-Thread ausgeführt. Solange der Thread blockiert ist tut sich gar nix auf dem Display. Man muss einen neuen, eigenen Thread starten und den x Sekunden warten lassen.

cu

Danke für die schnelle Antwort, das hat mir geholfen mein Problem zu verstehen und so konnte ich es auch lösen.

Einen schönen Tag wünsch ich noch :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]