作者neigence ()
站內java
標題[J2SE] ui thread
時間Wed Feb 17 13:12:37 2010
哇 ~ 最近都 android文 ... 來發篇正統的 j2se文好了
以往在寫java的時後 並不care ui和thread的關係,也許會在
各個地方 建立thread 並且在該thread中 new Swing元件
但最近寫過mfc之後,發現mfc 的 視窗元件 僅能在UI-Thread中建立
因為mfc中建立UI的Thread還必須負責該UI的event-dispatch
而我們自已建的thread 哪會去寫什event-dispatch queue
所以 該ui 跟床上那條死魚女朋友已經相去不遠了
不會重畫 不會叫 不會動~
但以往在寫java的時後 不論在何時何地何條thread建的swing元件
其實都是可以正常運作的,但我懷疑只是我剛好沒遇到問題而已,其實這樣
是違反ui架構的
結論是 我的問題是
1. 是否在java中 要new Swing元件都必須在 ui-thread ?
2. 如果有事件要處理 都透過 SwingUtilities.invokerLater or invokerAndWait
來處理 相當於mfc的 PostMessage / SendMessage
3. SwingWorker好用嗎...(正在讀doc中...)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.165.216.27
→ TonyQ:建立跟行為是不同回事吧 ? 根據認知建立跟paint在j是分開的. 02/17 13:51
推 jtmh:印象中 Java Tutorial 有針對這部分議題修改過,可以參考看看 02/17 14:00