top
書後面有寫…「視窗上發生任何事情(鍵盤操作、滑鼠點選、大小改變等),都會產生事件(Event),若對某些事件有興趣,可以對元件註冊傾聽器(Listener),之後會談到視窗元件事件處理,目前你要先知道的是,每個視窗程式都會有個
事件佇列(Event queue),若有事件發生都會被排入這個佇列,視窗程式會使用一條執行緒來處理佇列中的事件、呼叫已註冊傾聽器中的方法。
Swing元件並非執行緒安全,為了避免在事件佇列處理執行緒外有更新Swing元件的其他執行緒,建議更新Swing元件的動作應排入事件佇列中,讓事件佇列處理執行緒循序處理,避免多個執行緒同時存取Swing元件而造成競速問題。javax.swing.SwingUtilities的invokeLater()方法,可將指定的Runnable實作物件排入事件佇列,因此事件佇列處理執行緒將會呼叫排定的JNotePad實例建立與setVisible()呼叫動作,setVisible()設定為true可顯示視窗,設為false則隱藏視窗。」

https://www.google.com.tw/webhp? ... swing%20invokelater

TOP