62,615
社区成员
发帖
与我相关
我的任务
分享
包含进度条的类:
public class TransmitBar extends JPanel{
private File file;
private JProgressBar progressBar;
public TransmitBar(File file){
this.file=file;
progressBar=new JProgressBar(0, (int)file.length());
progressBar.setStringPainted(true);
progressBar.setValue(0);
progressBar.setPreferredSize(new Dimension(215,20));
this.setLayout(null);
progressBar.setBounds(0,0,215,15);
this.add(progressBar);
this.setPreferredSize(new Dimension(215,15));
}
public TransmitBar getObj(){
return this;
}
public void start(){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try{
FileInputStream fis=new FileInputStream(file);
FileOutputStream fos=new FileOutputStream("D:\\"+file.getName());
int data;
int i=0;
while((data=fis.read())!=-1){
fos.write(data);
i++;
progressBar.setValue(i);
//getObj().repaint();
//getObj().updateUI();
}
//Thread.interrupted();
}catch(Exception e){
}
}
});
}
}
主窗体中通过按钮激发文件选择,将选择的文件传入上面类的构造方法中,然后调用类的start()方法,现在文件可以传输,但是进度条无法更新:
Thread thread = new Thread(new Runnable() {
public void run() {
for(int pos=0;pos<100;pos++){
jProgressBar1.setValue(pos);
}
}
});
thread.start();