如何在JDialog
实例完成并让该实例更新该对话框上的进度条/消息的过程中,如何创建没有按钮的模态Runnable
?
显然,意大利面条代码可能有效,但如果存在,我正在寻找一个干净的设计。
答案 0 :(得分:8)
您可能需要查看ProgressMonitor。如果操作需要很长时间,它会自动弹出一个带进度条的对话框;见How to Use Progress Monitors。
答案 1 :(得分:2)
查看以下URL中描述的项目: http://digilander.libero.it/carlmila/compmon/main.html
它是Swing ProgressMonitor的免费Java库替代品。
答案 2 :(得分:1)
使用一个全局实例的监视器类,你的代码保持最新(我开始,我正在工作,我是xxx%,我已经完成了)。
然后,监视器可以决定显示对话框并使其保持最新状态。稍后,您可以简单地使用状态栏中的进度条替换对话框。使用监视器的接口(方法:start(),update(),end(),error(),isAborted()),这样你就可以用其他东西替换它。
如果有结束()并且在这种情况下不显示对话框等,您可以将显示器扩展到start()后500ms等等。
Eclipse就是这样做的,而且效果很好。