有netbeans6.5开发一桌面程序,有个部分是程序FTP到其他服务器上下载文件,要求下载一个,进度栏显示一个新的进度,偶代码如下:
String[] files;int i=0,j=0;FTPClient client ;
client=new FTPClient();
try {
client.setRemoteHost(HostIp);
client.connect();
client.login(strUser, strPasswd);
client.setType(FTPTransferType.BINARY);
client.chdir(strRemtPath);
files=client.dir();
jProgressBar1.setValue(0);
jProgressBar1.setMaximum((int)files.length-2);
jProgressBar1.setVisible(true);
while(i<files.length){
if(files[i].charAt(0)!='.'){
client.get(strLocPath+"\\"+files[i],files[i]);j++;jProgressBar1.setValue(j);
// jProgressBar1.invalidate();jProgressBar1.validate();
//jProgressBar1.updateUI();
// this.invalidate();this.validate();
//JOptionPane.showMessageDialog(this,"已成功从服务器上下载"+j+"个文件!", "文件下载结果", JOptionPane.INFORMATION_MESSAGE); System.out.println(j+"\t"+files[i]+"\t");
}
i++;
}
本来想让程序没下一个文件,进度栏前进一步,但实际是在下载过程中,整个窗口画面都是死的,进度栏指示为0,窗口画面不会刷新,而等待下载完了才突然显示进度栏到了100.
偶尝试用jProgressBar1.invalidate();jProgressBar1.validate();以及对整个窗口this.invalidate();this.validate();都无法实现想要的结果。如果每下一个文件就用JOptionPane.showMessageDialog(this,"已成功从服务器上下载"+j+"个文件!", "文件下载结果", JOptionPane.INFORMATION_MESSAGE)显示一个提示,可以达到进度栏实时更新,但这样太麻烦,尤其文件太多的情况下,对用户不友好
请问这个问题怎么解决啊
String[] files;int i=0,j=0;FTPClient client ;
client=new FTPClient();
try {
client.setRemoteHost(HostIp);
client.connect();
client.login(strUser, strPasswd);
client.setType(FTPTransferType.BINARY);
client.chdir(strRemtPath);
files=client.dir();
jProgressBar1.setValue(0);
jProgressBar1.setMaximum((int)files.length-2);
jProgressBar1.setVisible(true);
while(i<files.length){
if(files[i].charAt(0)!='.'){
client.get(strLocPath+"\\"+files[i],files[i]);j++;jProgressBar1.setValue(j);
// jProgressBar1.invalidate();jProgressBar1.validate();
//jProgressBar1.updateUI();
// this.invalidate();this.validate();
//JOptionPane.showMessageDialog(this,"已成功从服务器上下载"+j+"个文件!", "文件下载结果", JOptionPane.INFORMATION_MESSAGE); System.out.println(j+"\t"+files[i]+"\t");
}
i++;
}
本来想让程序没下一个文件,进度栏前进一步,但实际是在下载过程中,整个窗口画面都是死的,进度栏指示为0,窗口画面不会刷新,而等待下载完了才突然显示进度栏到了100.
偶尝试用jProgressBar1.invalidate();jProgressBar1.validate();以及对整个窗口this.invalidate();this.validate();都无法实现想要的结果。如果每下一个文件就用JOptionPane.showMessageDialog(this,"已成功从服务器上下载"+j+"个文件!", "文件下载结果", JOptionPane.INFORMATION_MESSAGE)显示一个提示,可以达到进度栏实时更新,但这样太麻烦,尤其文件太多的情况下,对用户不友好
请问这个问题怎么解决啊
http://topic.csdn.net/u/20080522/23/99c624bc-1aa6-441b-abc2-d478f9426601.html
问题不是怎么使用jProgressBar,而是,或者说应该问:在程序进行FTP下载文件时,主程序窗口上的各控怎么不重新绘,
jProgressBar1是在jFrame窗口上的一个进度栏(本程序是桌面应用程序),如何修改偶上面的代码呢