Java 显示进度条并将其链接到下载

Java 显示进度条并将其链接到下载,java,swing,Java,Swing,我正在用我的代码从互联网下载一个大文件,并希望向用户显示一个进度条,以显示下载的进度,最好是在一个单独的弹出框中 我该怎么做呢?您使用什么UI框架?如果是Swing,您可以将下载代码包装到SwingWorker中,并在缓冲区写入时更新进度条。您还可以将写入的字节数存储在局部变量中,并利用计时器,但它看起来不那么优雅(但可以工作) 如果我对Swing的假设是正确的,那么有一个很好的SwingWorker示例来帮助您开始学习。请参阅javax.Swing.ProgressMonitorInputSt

我正在用我的代码从互联网下载一个大文件,并希望向用户显示一个进度条,以显示下载的进度,最好是在一个单独的弹出框中


我该怎么做呢?

您使用什么UI框架?如果是Swing,您可以将下载代码包装到SwingWorker中,并在缓冲区写入时更新进度条。您还可以将写入的字节数存储在局部变量中,并利用计时器,但它看起来不那么优雅(但可以工作)


如果我对Swing的假设是正确的,那么有一个很好的SwingWorker示例来帮助您开始学习。

请参阅javax.Swing.ProgressMonitorInputStream


人们似乎很怀念这一点。可能是因为它不是以“J”开头的

我真的不知道从哪里开始,这就是问题所在。我发现,除了延迟之外,没有任何教程可以将该条链接到任何东西。我不想这样,我想让它知道下载过程有多远。你如何将它链接到延迟?延迟1000,然后增加链接到该条的计数器。我看不出这是如何联系起来的。是的,我正在使用swing,这个例子非常有用,但有一些事情仍然让我困惑;在他们的例子中,他们使用文档。我真的不明白SwingWorker初始化的目的是什么。这是一个使用泛型的扩展示例(如果您愿意,您可以以简化的方式使用SwingWorker,例如不使用泛型参数)。简言之:第一个泛型定义了工作程序完成时将返回的对象类型,第二个泛型参数用于中间结果存储。我已经实现了它,它比我能找到的任何东西都好,但它不会显示如所述的弹出窗口。我的任务大约需要10秒,但它从不显示任何内容。ProgressMonitorInputStream pin=新的ProgressMonitorInputStream(null,文件名,is);当“is”是输入流时。有什么我遗漏的吗?不确定空值是否符合犹太教。您可以获取底层ProgressMonitor,并使用数据(例如预期最大值、弹出时间等)对其进行初始化。