亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 SwingWorker 發生異常后,即使值正確,線程也不會執行

使用 SwingWorker 發生異常后,即使值正確,線程也不會執行

鴻蒙傳說 2022-11-02 10:23:30
我正在使用帶有 JTextField 和 JButton 的 SwingWorker 創建一個 Java Swing 應用程序。在 SwingWorker 內部,我創建了 2 個線程(一個線程是顯示帶有消息的 JDialog,另一個線程是檢查 JTextField 中輸入的值是否為正確的整數)。我在單擊 JButton 時正在執行這些線程。如果值為整數,將顯示成功消息(單擊該消息不會關閉主 JFrame)。如果它是字符串,則會拋出異常并顯示錯誤消息(在這種情況下,我也不會關閉主 JFrame)。一旦異常消息關閉,即使我輸入正確的整數值并單擊 JButton,這次線程也不會執行。
查看完整描述

1 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

我認為您遇到的問題是您不能在同一個線程上調用 start 兩次,這就是您再次按下按鈕時發生的情況。

https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#start()

多次啟動一個線程是不合法的。特別是,線程一旦完成執行就可能不會重新啟動。

最簡單的解決方案是在開始調用之前調用線程設置

myThread = new MyThread();
 myThread.startThreads();


查看完整回答
反對 回復 2022-11-02
  • 1 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號