在我的帶有Swing GUI的Java應用程序中,我想要實現以下功能。Java Swing應用程序:如何從GUI線程獲取數據到另一個線程?
有一個非GUI線程正在運行,執行一些工作。有一點,這個線程需要用戶輸入才能繼續。然後,我想對GUI進行一些更改,等待特定的GUI操作(如用戶按下OK按鈕),從GUI獲取輸入數據到非GUI線程,並讓它繼續計算。
環顧四周,我發現了很多關於如何從另一個線程上的Swing GUI線程啓動執行(長時間運行)任務的信息,但沒有解決我的問題。
SwingUtilites.invokeAndWait
聽起來像它的工作,但首先,它需要一個Runnable
參數,而不是一個Callable
的,所以返回的結果沒有直接的方式,第二,它沒有解決的等待一定的問題GUI事件。
我意識到我可以用自己的解決方案來彌補自己的解決方案。一個CountDownLatch
,但對我來說,這個問題似乎足夠頻繁,因爲有一個標準的解決方案。
所以,我的問題是:這是一個真正常見的問題,如果是的話,是否有標準庫/庫中的解決方案?如果沒有標準的解決方案,你會如何解決它?如果這個問題不經常發生,爲什麼不呢?
查看類似的問題http:// stackoverflow。com/questions/3981924/how-to-retrieve-a-value-that-must-be-calculated-on-another-thread – 2014-02-19 01:49:51