用javaswing实现线程
我有一个swing worker,它配置串行端口连接。这个过程需要一段不确定的时间才能完成,有时需要1分钟,有时需要更长的时间 当用户在工作线程仍在配置时单击需要配置数据的按钮时,就会出现我的问题用javaswing实现线程,java,multithreading,swing,swingworker,Java,Multithreading,Swing,Swingworker,我有一个swing worker,它配置串行端口连接。这个过程需要一段不确定的时间才能完成,有时需要1分钟,有时需要更长的时间 当用户在工作线程仍在配置时单击需要配置数据的按钮时,就会出现我的问题 我想知道只有在工作线程完成时如何执行用户的请求。否则,如果工作线程仍处于活动状态,我希望执行等待工作线程完成。如果task.isDone()-其中task是您的SwingWorker,您可以检查按钮ActionEvent,并仅在其为真时继续。但是您可能希望显示一个弹出窗口或其他东西,否则用户可能会感到
我想知道只有在工作线程完成时如何执行用户的请求。否则,如果工作线程仍处于活动状态,我希望执行等待工作线程完成。如果
task.isDone()
-其中task是您的SwingWorker
,您可以检查按钮ActionEvent
,并仅在其为真时继续。但是您可能希望显示一个弹出窗口或其他东西,否则用户可能会感到困惑,为什么什么都没有发生
另一个简单的解决方案是在任务运行时公开按钮并禁用它,然后在任务完成后再次启用它。然后,在按钮准备就绪之前,用户无法单击按钮。- 将
添加到PropertyChangeListener
,然后您可以确定SwingWorker
- ,否则无法从调用的方法中获取验证
- 取决于代码,但我怀疑是否有可能更改设置,直到当前线程结束,最好是
,然后重新启动此实例SwingWorker#cancel()