我有一個SwingWorker,它在後臺執行一些計算(這些操作位於覆蓋的doInBackground()
方法中)。所以,我也使用方法開始計算。如何在完成這些計算後得到結果?SwingWorker得到結果
回答
覆蓋done
方法 - 該方法將在工作完成時調用。 Oracle有一個全面的教程在這裏:Improve Application Performance With SwingWorker in Java SE 6
還看到另一個SO問題:How do I use SwingWorker in Java?
你可以叫get
檢索結果,但如果工人沒有完成的線程將阻塞,直到工人完成。這意味着如果您從事件調度線程(EDT)調用get
,那麼如果工作人員沒有完成,您的GUI將不會響應。您可以致電isDone
以確定工人是否已完成工作。
最後,您可以附加一個屬性更改偵聽器,以通知工作人員的進度,包括何時完成其任務。我發佈的第一個鏈接就是一個例子。
我需要完全返回語句。如果我只是調用我的工人的doInBackground方法,會發生什麼? – dizpers 2011-12-24 17:00:30
它會運行,可能會阻止美國東部時間。相反,實例化worker和'execute()'它,如示例中所示。 – trashgod 2011-12-24 17:08:58
@dizpers _什麼時候會發生,我只是叫doInBackground_地獄崩潰;-)像往常一樣,當你做某些事情**非常錯誤** - 只需堅持在java文檔和關於併發性教程一章中廣泛解釋的用法Swing – kleopatra 2011-12-25 12:32:43
- 1. SwingWorker任務執行()的奇怪結果
- 2. 得不到結果
- 3. 得到結果:System.Data.SqlClient.SqlDataReader
- 4. 得到location_once_scrolled_into_view結果
- 5. ParsePromise得到結果
- 6. GSON JSON得到的結果
- 7. MYSQL得到的結果
- 8. 不穩定得到結果
- 9. onActivityResult沒有得到結果
- 10. gamecenter沒有得到結果
- 11. Java過程得到結果
- 12. 在hindi得到結果
- 13. HTML結果得到編碼
- 14. 從DialogFragment得到結果
- 15. 得到零結果(android)
- 16. PHP從URL得到結果
- 17. Ajax沒有得到結果
- 18. `preg_match`未能得到結果
- 19. django send_mail得到結果
- 20. 得到錯誤的結果
- 21. 從g_varient_new()得到結果...
- 22. onActivityResult沒有得到結果
- 23. 得到芹菜組結果
- 24. 得到無效結果?
- 25. Paypal_IPN沒有得到結果?
- 26. 從FileReader()得到結果
- 27. 的PhoneGap geocoder.geocode得到結果
- 28. func.max得到意想不到的結果?
- 29. 從JSON到textview沒有得到結果
- 30. hot得到線程結果到TextArea
分享一些代碼! – 2011-12-24 16:44:36
現在沒有代碼。現在我想想如何連接SwingWorker和我的模型以及應用程序的MVC結構視圖 – dizpers 2011-12-24 17:02:12