使用Java Swing进行线程化

时间:2012-10-05 10:49:04

标签: java multithreading swing swingworker

我有一个摆动工作器,用于配置串口连接。这个过程需要不确定的时间才能完成,有时需要1分钟才能完成。

当用户在工作线程仍在配置时单击需要配置数据的按钮时,我的问题就出现了。

我想知道只有在工作线程完成后才能执行用户的请求。如果工作线程仍处于活动状态,我希望执行等待工作线程完成。

2 个答案:

答案 0 :(得分:5)

答案 1 :(得分:2)

如果ActionEvent - 其中任务是您的task.isDone(),您可以检查按钮SwingWorker,并且只有在真实时才会继续。但是你可能想要显示一个弹出窗口或其他东西,否则用户可能会混淆为什么没有发生任何事情。

另一个简单的解决方案是在任务运行时公开按钮并禁用它,并在完成后再次启用它。然后用户无法点击按钮,直到它准备就绪。