【问题标题】:Progress Dialog in SwingSwing 中的进度对话框
【发布时间】:2009-02-04 15:33:17
【问题描述】:

如何在 Runnable 实例完成并让该实例更新该对话框上的进度条/消息的持续时间内显示不带按钮的模态 JDialog

显然意大利面条式代码可能会起作用,但我正在寻找一种简洁的设计(如果存在的话)。

【问题讨论】:

    标签: java multithreading swing


    【解决方案1】:

    您可能想查看ProgressMonitor。如果操作时间过长,它会自动弹出一个带有进度条的对话框;见How to Use Progress Monitors

    【讨论】:

    • 除了取消按钮? :P
    • 是的,它并不理想,但它确实准确地回答了这个问题。
    【解决方案2】:

    查看以下 URL 中描述的项目: http://digilander.libero.it/carlmila/compmon/main.html

    它是 Swing ProgressMonitor 的免费 Java 库替代品。

    【讨论】:

      【解决方案3】:

      使用带有全局实例的监视器类,并且您的代码会保持最新状态(我正在开始,我正在工作,我在 xxx%,我已经完成了)。

      然后监视器可以决定显示对话框并使其保持最新状态。稍后,您可以简单地将对话框替换为状态栏中的进度条。使用监视器的接口(方法:start()、update()、end()、error()、isAborted()),这样你也可以用其他东西替换它。

      如果有 end(),你可以将监视器延长到 start() 之后等待 500 毫秒,并且在这种情况下不显示对话框,等等。

      Eclipse 就是这样做的,而且效果很好。

      【讨论】:

        猜你喜欢
        • 2011-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多