2011-05-05 114 views
0

親愛的傢伙, 我在揮杆相關的問題。由於違反公司政策,我無法分享代碼,所以我會盡我所能解釋問題。更新的JLabel從另一個線程

總之,我創建了一個擴展的JWindow包含一個JLabel類。此JLabel的文本通過計時器對象隨機更新,該計時器對象使用scheduleAtFixedRate方法每50毫秒實例化一個TimerTask。 JLabel中的值通過調用一個單獨線程中的方法(我們稱之爲傳輸線程)來檢索,該線程處理將數據傳輸到某個設備。問題是JWindow出現在屏幕上,沒有任何內容,直到傳輸到設備結束,然後我會得到傳輸線程的最後結果。這個問題會是什麼?

+0

你可以分享說明問題的不同代碼嗎? – 2011-05-05 09:37:58

+0

我的猜測是你正在GUI線程中訪問設備,這阻止了GUI的更新。您需要確保GUI線程在設備上不被阻塞,或者在您希望更新GUI時鎖定該線程。 – 2011-05-05 09:38:54

+0

沒有彼得,我實際上是從中介類創建JWindow對象。介體類在第一次加載時啓動傳輸線程。這個相同的介體類有一個JButton,它通過調用傳輸線程中的方法來啓動數據傳輸。在傳輸開始之前,這個相同的mediator類創建包含JLabel的JWindow,JLabel從傳輸線程內的函數更新其值。 – 2011-05-05 09:56:37

回答

相關問題