2016-08-09 51 views
-1

Innerhalb einer JFrame-Klasse starte ich einen Thread. Dieser Thread überprüft etwas und gibt einen booleschen Wert als wahr oder falsch zurück. Innerhalb der JFrame-Klasse möchte ich diesen booleschen Wert überprüfen und Aktionen entsprechend den Ergebnissen des Threads ausführen. Nun ist meine Frage, wie kann ich meinen JFrame warten bis der Thread endet?Wie mache ich ein Programm in den Schlafmodus, bis mein Thread endet?

Wie mache ich ein Programm in den Schlafmodus, bis mein Thread endet? Ich möchte Thread.join() nicht verwenden. Ist es möglich?


Ich interagiere mit dem Benutzer in einem anderen Fenster.

+1

Ihre Frage ist ein bisschen vage - was genau meinen Sie mit "Thread überprüft etwas ...."? - Interagieren Sie mit dem Benutzer in einem anderen Fenster? Wenn ja, verwenden Sie einen modalen Dialog. Laufen Sie einen Hintergrund-Thread wie mit einem SwingWorker? Wenn dies der Fall ist, verwenden Sie einen PropertyChangeListener, der dem SwingWorker hinzugefügt wurde, und aktivieren Sie die GUI nach Abschluss. Bitte teilen Sie die Details mit und zeigen Sie den entsprechenden Code an. Bitte verbessern Sie Ihre Frage. –

+0

Ich interagiere mit dem Benutzer in einem anderen Fenster. –

+0

Dann sollte dieses "andere Fenster" ein modales Dialogfeld sein. Bitte lesen Sie [diese Frage] (http://stackoverflow.com/questions/16367968/how-do-i-pause-a-jframe-while-another-isrunning) für mehr dazu, sowie [diese Fragen] (https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=site:stackoverflow.com+java+pause+a+jframe+another+jframe) für a ** viel ** mehr dazu. –

Antwort

2

Machen Sie das zweite Fenster zu einem modalen Dialog, wie zum Beispiel einem JOptionPane oder einem modalen JDialog. Beides wird das aufrufende Fenster einfrieren, bis das Dialogfenster nicht mehr sichtbar ist. Bitte überprüfen Sie this question für mehr auf diese, sowie these questions für eine Los mehr dazu.