【发布时间】:2012-03-18 13:46:53
【问题描述】:
我想显示使用 jprogressbar 将文件从一个文件夹复制到另一个文件夹的进度。我所做的所有事情,但 jprogress 栏在最后运行并在最后显示 100%。
我是初学者并以这种形式阅读主题,上面说我应该使用 EDT,但我仍然没有得到所有的东西。我还创建了另一个线程来更新 Jprogress 栏,但没有任何反应。我的部分代码是
jProgressBar1.setMinimum(0);
jProgressBar1.setMaximum(100);
try
{
fis = new FileInputStream(read);
BufferedInputStream bins = new BufferedInputStream(fis);
int b;
long copied_data=0;
for(int i =0;i<no_of_parts;i++)
{
copied_data = 0;
fos = new FileOutputStream(jTextField2.getText()+"\\"+reading_file_name+".part"+i);
bouts = new BufferedOutputStream(fos);
while((b = bins.read())!= -1)
{
bouts.write(b);
percentage = (progress*100)/file_size;
jProgressBar1.setValue(percentage);
copied_data++;
progress++;
if(copied_data==each_part_size_in_byte)
{
bouts.flush();
bouts.close();
break;
}
}
bouts.flush();
bouts.close();
}
}catch(Exception e){}
【问题讨论】:
-
不不,你误会我了,我只是需要一些建议
-
它工作了,实际上 JprogressBar 没有更新,它在最后显示 100% 所以我只想让它实时运行,谢谢我的任务完成了。
标签: java swing io jprogressbar event-dispatch-thread