2014-02-13 46 views
1

我一直在寻找无处不在,你可以让j进度条显示十进制值。我的问题是我有一个程序可以处理非常大的数据集,需要时间来处理。如何获取显示十进制值的Java进度条?

例如,我正在处理一个包含超过200k文件的目录。处理和输入2000个文件到1%的数据库平均需要大约4分钟的时间。我试图给用户一个视觉指标,说明在读取数据到数据库中取得了多大进展。

以4分钟为我的进度条显示1%会导致我认为我的用户可能认为我的程序被挂断或某处出现故障。

我知道JProgess酒吧只接受整数值。还有什么可以用来显示进度和表示十进制值。

如果我的进度条可以显示.01%,比坐在0%4分钟更好。

如果没有办法做到这一点,我应该将我的最大值设置为文件数量,而不是以百分比显示我的进度?

+0

这[问题](http://stackoverflow.com/q/6579789/994125)可能会帮助你。 – Laf

+2

为什么不只是改变比例?乘以100 –

+0

如果你乘以100,那么你仍然有0 – FazoM

回答

1

答案是:。根据文档http://docs.oracle.com/javase/7/docs/api/javax/swing/JProgressBar.html 的方法SetValue只接受INT:

setValue(int n) - Sets the progress bar's current value to n. 

您可以:1。 ),正如你所说的 - 设置的最大值,你必须处理的文件数量。

2.)使用:

setString(String s) - Sets the value of the progress string. 

并把它作为已完成的%的指标。

3.)扩展类(?)。

希望有所帮助。

+0

不是我真正希望的解决方案,但我只是调整了最大值。 – Jeremy