我正在使用以下代码使用PUT请求将文件上传到服务器。这可以正常工作。但是我想在此代码中添加JProgressBar
,您如何建议我这样做?我不确定要使用哪个类来实现所需的进度条。
RequestEntity re = new RequestEntity() {
@Override
public long getContentLength() {
// TODO Auto-generated method stub
return file.length();
}
@Override
public String getContentType() {
// TODO Auto-generated method stub
return "application/octet-stream";
}
@Override
public boolean isRepeatable() {
// TODO Auto-generated method stub
return true;
}
@Override
public void writeRequest(OutputStream outputStream) throws IOException {
// TODO Auto-generated method stub
InputStream in = new FileInputStream(file);
try {
int l;
byte[] buffer = new byte[1024];
while ((l = in.read(buffer)) != -1) {
outputStream.write(buffer, 0, l);
}
} finally {
in.close();
}
}
};
最佳答案
每次读取一个字节时,将一个添加到计数器。提供一种返回总字节数和读取的字节数的方法。在GUI代码中,将进度条的最大值设置为字节数,然后启动一个计时器,该计时器使用当前读取的字节数定期调用progress.setValue
。