如何在Swing中停止正在运行的进程

时间:2019-04-25 18:23:05

标签: java multithreading swing

我实现了一个jar,用于从DB中提取结果并写入excel文件。我的jar有两个按钮“执行”和“停止”。当我从GUI单击“执行”按钮时,我的代码可以运行,但让我们假设,如果我想立即“停止”执行,我将单击“停止”按钮,它将执行System.exit(0)。有人可以帮我解决一下这个问题吗?

2 个答案:

答案 0 :(得分:1)

确保“执行”按钮启动的任务在单独的线程中运行。如果仅在“执行”按钮的ActionListener中直接执行它,则将阻止事件线程,直到完成任务后,才会处理“停止”按钮。

答案 1 :(得分:0)

使用SwingWorker来实现此行为,它提供了在后台执行任务的能力(一个单独的线程),还提供了取消任务的能力。

希望这会有所帮助!