JFrame nach Buttonklick 3 Sekunden warten, bevor es sich ändert

Fiandus

Mitglied
Hi und sorry für die kryptische Überschrift, aber mir ist einfach nichts prägnanteres eingefallen.

Ich habe folgendes Problem. Ich programmiere zur Zeit einen Vokabeltrainer. Der funktioniert an sich schon ganz gut.. Jeder "Vokabeltestdurchlauf" findet in einem JFrame statt. geplant war, dass in diesem JFrame eine Vokabel nach der anderen abgefragt wird. Genauer gesagt sollte, nachdem man die erste Vokabel gelöst hat, nach 3 Sekunden die nächste Vokabel im gleichen JFrame abgefragt werden. Das Problem ist.. Man gibt die gesuchte Vokabel in ein Textfeld ein und klickt den "Lösen"-button, nun kommt (per Action) eine optische und akustische Bestätigung, dass die Vokabel gelöst wurde. Aber wie bekomm ich es nun hin, dass nach 3 Sekunden die nächste Vokabel angezeigt wird?

Zur Zeit sieht meine Button-Action ungefähr so aus:

Java:
//deaktiviere den Lösen-Button im Frame
SwingUtilities.invokeLater(Spiele Sound ab)
//Zeige optische Bestätigung

wenn ich daraus nun:
Java:
//deaktiviere den Lösen-Button im Frame
SwingUtilities.invokeLater(Spiele Sound ab)
//Zeige optische Bestätigung
//Zeige nächste Vokabel an
mache, wird die optische bestätigung logischerweise gar nicht erst angezeigt sondern direkt die nächste Vokabel.

ein weiterer Versuch war:
Java:
//deaktiviere den Lösen-Button im Frame
SwingUtilities.invokeLater(Spiele Sound ab)
//Zeige optische Bestätigung
Thread.sleep(3000)
//Zeige nächste Vokabel
aber das bringt natürlich noch viel weniger..aber ich sehe auch ein warum...weil sich das sleep auf den EDT bezieht, somit friert mein GUI für 3 sekunden ein und dann wird die nächste Vokabel angezeigt.

Weiss jemand ne Möglichkeit, dass das JFrame erst die optische Bestätigung anzeigt, dann 3 Sekunden wartet, und dann erst die nächste Vokabel anzeigt?

Ich hoffe auf die ein oder andere Hilfestellung. Vielen Dank im Voraus!
 

Neue Themen


Zurück
Oben