我正在使用以下代码使用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

10-04 18:16