我正在创建一个 Java 桌面应用程序。我有两个按钮“创建”和“取消”。如果我按创建,它将在新窗口中创建一个报告。 我的问题出在“取消”按钮上。如果用户按下创建按钮,将需要一些时间来创建新报告。取消按钮应该只在创建时有效。如果用户按下取消按钮,报告创建操作应该中止。 我添加了操作监听器来创建和取消按钮,但是当我点击创建时,我无法同时点击取消按钮。
最佳答案
尝试在单独的线程中运行每个进程。取消不起作用的原因是创建需要时间来完成其过程。在那段时间里,它会占用主线程并停止任何可能由其他 UI 元素执行的操作(包括取消按钮)。
您的取消按钮可能有效。但是每次单击它时,被触发的事件都会被放入队列的后面,以便在创建按钮的事件后面进行处理。通过将事件处理放在单独的线程中并同步两个按钮所需的任何资源(只要这些资源是线程安全的!),您应该能够使用取消按钮轻松停止事件按钮创建的线程。
关于java - 如何停止在java swing中执行的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11988347/