java - 如何停止在java swing中执行的 Action

标签 java button action

我正在创建一个 Java 桌面应用程序。我有两个按钮“创建”和“取消”。如果我按创建,它将在新窗口中创建一个报告。 我的问题出在“取消”按钮上。如果用户按下创建按钮,将需要一些时间来创建新报告。取消按钮应该只在创建时有效。如果用户按下取消按钮,报告创建操作应该中止。 我添加了操作监听器来创建和取消按钮,但是当我点击创建时,我无法同时点击取消按钮。

最佳答案

尝试在单独的线程中运行每个进程。取消不起作用的原因是创建需要时间来完成其过程。在那段时间里,它会占用主线程并停止任何可能由其他 UI 元素执行的操作(包括取消按钮)。

您的取消按钮可能有效。但是每次单击它时,被触发的事件都会被放入队列的后面,以便在创建按钮的事件后面进行处理。通过将事件处理放在单独的线程中并同步两个按钮所需的任何资源(只要这些资源是线程安全的!),您应该能够使用取消按钮轻松停止事件按钮创建的线程。

关于java - 如何停止在java swing中执行的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11988347/

相关文章:

java - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException - 字段列表中的未知列

java - 在 Websphere 应用程序服务器 6.1 中部署 .war 文件?

java - 在不区分大小写的情况下避免重复条目?

Android onClick 只能工作一次

带有后退按钮的 Android Webview,否则

jquery - 单击按钮时如何更改表单的操作属性

asp.net-mvc - 在使用 [AllowAnonymous] 执行 Controller 中的 MVC 操作之前运行代码

java - 如何在一个命令中为所有产品风格运行 lint - Android?

wpf - 在 WPF : how to disable the animation when the button after be pressed? 中

jsf - 如何在 JSF 组件的 on* 属性中调用托管 bean 操作方法