我正在創建一個java桌面應用程序。我有兩個按鈕「創建」和「取消」。如果我按下創建它將在新窗口中創建一個報告。 我的問題是「取消」按鈕。如果用戶按下創建按鈕,則需要一些時間來創建新報告。取消按鈕只能在創建時間內使用。如果用戶按取消按鈕,報告創建操作應該中止。我添加動作偵聽器來創建和取消按鈕,但是當我點擊創建我不能夠同時點擊取消按鈕。如何停止在java swing中執行的動作
3
A
回答
2
嘗試在單獨的線程中運行每個進程。取消原因不起作用是創建需要時間來完成其過程。在那段時間,它佔據主線程並停止任何可能由其他UI元素執行的操作(包括取消按鈕)。
您的取消按鈕可能正在工作。但是每次點擊它時,被觸發的事件都會放到隊列的後面,以便在創建按鈕的事件之後進行處理。通過將事件處理放在單獨的線程中,並同步兩個按鈕所需的任何資源(只要這些資源是線程安全的!),您應該可以通過取消按鈕輕鬆停止由事件按鈕創建的線程。
0
嘗試創建兩個不同的ActionListener
s:一個用於「創建」JButton
,另一個用於「取消」JButton
。這應該允許一方在另一方正在處理時作出迴應。
相關問題
- 1. 如何在AnimatorSet的動畫停止後立即執行動作?
- 2. Java swing - 點擊執行一個動作
- 3. 如何在Java中的線程中停止執行該方法?
- 4. 如何中止或停止JavaScript執行?
- 5. Java執行隨機停止
- 6. 停止代碼執行Java
- 7. Java停止代碼執行?
- 8. 如何使用rails中的另一個動作停止動作執行?
- 9. 如何停止Swing EDT
- 10. 如何停止執行eventlisteners
- 11. 如何停止Maven執行
- 12. 如何在java中停止命令執行
- 13. 在JavaScript中停止執行
- 14. 停止Java Swing在沒有用戶輸入的情況下執行
- 15. 停止計時器在java Swing
- 16. 如何在執行運行時命令後停止java掛起
- 17. 如何停止執行Java中的Executor ThreadPool?
- 18. JAVA:如何在特定時間後停止函數的執行?
- 19. 如何停止或暫停php執行?
- 20. 如何停止在Swift中執行某個操作?
- 21. 如何暫停Java Swing Timer?
- 22. 執行:noremap時,如何停止在vim中移動光標?
- 23. 如何在執行之間停止GCD
- 24. 如何在執行promise時停止$ ionicLoading?
- 25. 停止Recaptcha執行「行動」的形式
- 26. 如何暫停程序的執行,直到在Java Swing中單擊按鈕爲止
- 27. 如何暫停執行動作
- 28. Java/Swing:一個JScrollPane中的JTextArea,如何防止自動滾動?
- 29. 如何停止php函數的執行?
- 30. 如何停止執行j2me的midlet?
官方Javadoc說Swing *不是線程安全的*,所以這不是一個好的方法。 – asteri 2012-08-16 15:59:40
這隻適用於您打算在單獨的線程中更新的擺動元素。如果他在單獨的線程中更新按鈕(或大多數擺動UI元素),這將是不安全的。所以你是對的,它不是線程安全的,但這不是正在做的事情。提問者只是想停止按鈕觸發的事件。 – Perley 2012-08-16 17:40:25