Thread blocken bis Taste gedrückt

Sogomn

Bekanntes Mitglied
Hallo. Ich versuche verzweifelt, einen Dialog zu öffnen, der den main-Thread solange blockiert, bis eine Taste gedrückt ist.

Java:
MYDialog dialog = new MyDialog();
try {
   dialog.wait();   //Ja, der Dialog ruft irgendwann notify() auf
} catch (InterruptedException ex) {
   //...
}
Das schluckt dann leider auch die Tastendrücke.

Wenn ich das ganze allerdings in einen anderen Thread verlagere, wird der Hauptthread natürlich nicht blockiert.
Ich hab' das irgendwann schonmal hinbekommen - Ich kann mich nur nicht daran erinnern und das Projekt habe ich gelöscht...
 
Deine Frage habe ich nicht ganz verstanden.
Du blockierst den main-Thread bzw. den EDT des Systems. Du weißt das es funktioniert wenn du das ganze in einen anderen Thread verlagerst tust das aber nicht, weil...?

Wenn du den EDT blockierst geht nunmal nichts mehr, da gibt es auch kein Ausweg. Musst du denn den gesammten EDT blockieren? Oder willst du nur ein bestimmtes System-Event blockieren?
 
Der Dialog soll sich ähnlich wie ein JOptionPane verhalten. Solange der OK-Button (bzw. in diesem Fall eine Taste) nicht gedrückt wurde, wird der Thread, in dem der Dialog aufgerufen wurde, blockiert.
 
Zuletzt bearbeitet:

Zurück
Oben