我需要開發Java代碼有JFrame的使用提出了文本和button.Using線程執行操作,我需要爲JFrame.Using另一個線程我的標題欄,每隔一分鐘更新一次當單擊按鈕時,需要在控制檯中顯示文本框的值。我有執行兩種操作(更新每分鐘的時間和獲取文本框值)的代碼,但我不知道如何在同一個類中添加兩個線程。如果有人知道請幫我出使用線程對同一JFrame的
回答
你所問的是在Swing
做危險的事情。 Swing
部件不是thread-safe
和應只從Event Dispatching Thread
(也被稱爲EDT
或Swing線程)更新。爲此,Swing
具有實用方法,例如SwingUtilities.invokeLater(Runnable)
,它將在EDT
上執行Runnable中的代碼(在未來某個時間點)。這個想法是,你把你的代碼做Swing的東西(如更新JFrame
與當時的名稱)的獨立Runnable
內並將其傳遞給invokeLater()
。
要做到這一點,你可以創建一個匿名的Runnable類:
Runnable updateJFrame = new Runnable() {
public void run() {
myJFrame.setTitle("My New Title");
}
};
SwingUtilities.invokeLater(updateJFrame);
使用invokeLater()
也保證了部件得到刷新/重繪他們一直在更新後正常。 (您在使用靜態圖時看到的行爲實際上可能是刷新/重繪問題。)此故事的寓意是,如果您在非EDT線程上操作Swing組件,則所有投注都將關閉。
的上下文中調用與其關聯的ActionListener。我建議在Thread上使用javax.swing.Timer表演定期舉辦活動 – MadProgrammer
@mounika什麼爛攤子!請。添加這個東西作爲更新。 –
- 1. 在JFrame中使用線程
- 2. 使用新線程的新JFrame
- 3. 用線程更新JFrame? - Java
- 4. 使用相同對象的線程池
- 5. JFrame中的線程問題
- 6. JFrame中的Java多線程
- 7. 多線程:如何讓jframe更新一個線程的日誌?
- 8. 線程調用synchronized方法是否搶先使用同一對象但不同步的另一個線程?
- 9. 線程安全:JFrame和另一個類
- 10. 如何在使用不同的JFrame之前使用JFrame
- 11. 空對象引用錯誤,同時使用一個線程
- 12. 針對不同的線程
- 13. JFrame repaint();如何用線程信息更新JFrame?
- 14. 調用JFrame和reprompting相同的JFrame
- 15. 多個線程可以使用同一CacheManager的相同Ehcache對象嗎?
- 16. 如何在同一類中使用多線程Java多線程?
- 17. 如何使一個線程不凍結你整個JFrame。 JAVA
- 18. 從Java中的不同線程處置JFrame是否安全?
- 19. 如何實現多線程的JFrame的
- 20. 使用WINAPI同步線程
- 21. 如何實例不是一個JFrame中使用線程Java中的動畫嗎?
- 22. JFrame調用多個併發線程來更新調用者JFrame中的JProgressBar
- 23. 爲新的JFrame創建新線程
- 24. 使用另一個線程調用的方法同步UI線程
- 25. 從不同的JFrame調用JFrame的相同實例
- 26. 如何使不同的線程使用並行線程
- 27. 同一線程ID的
- 28. 的ReentrantReadWriteLock在同一線程
- 29. .NET線程 - 同步對象
- 30. 線程對象不同步
我不確定爲什麼你需要第二個線程,但是你還沒有提供任何示例代碼。我會非常推薦你拋棄你的第一個線程來支持一個javx.swing.Timer,它將在EDT – MadProgrammer