簡體   English   中英

如何停止在java swing中執行的操作

[英]how to stop action performed in java swing

我正在創建一個java桌面應用程序。我有兩個按鈕“創建”和“取消”。 如果我按下創建它將在新窗口中創建一個報告。 我的問題是“取消”按鈕。 如果用戶按下創建按鈕,則需要一些時間來創建新報告。 取消按鈕應僅在創建時間內起作用。 如果用戶按下取消按鈕,則報告創建操作應該中止。 我添加動作監聽器來創建和取消按鈕,但當我點擊創建我無法同時點擊取消按鈕。

嘗試在單獨的線程中運行每個進程。 取消的原因不起作用是創建需要時間來完成其過程。 在那段時間它占用主線程並停止其他UI元素可能采取的任何動作(包括取消按鈕)。

您的取消按鈕可能正常工作。 但是每次單擊它時,被觸發的事件都會被放入隊列的后面,以便在創建按鈕的事件后面進行處理。 通過將事件的處理放在一個單獨的線程中並同步兩個按鈕所需的任何資源(只要這些資源是線程安全的!),您應該能夠使用取消按鈕輕松地停止事件按鈕創建的線程。

嘗試創建兩個不同的ActionListener :一個用於“Create” JButton ,另一個用於“Cancel” JButton 這應該允許一方在另一方處理時做出響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM