gpt4 book ai didi

java - 如何使用 JProgressBar 测量任务进度并更新它

转载 作者:太空宇宙 更新时间:2023-11-04 07:20:53 25 4
gpt4 key购买 nike

我想显示任务完成的百分比。但由于任务的长度取决于从文件中读取的数据量,因此我无法像现在一样对 pb3.setValue(...) 的值进行硬编码。我知道我可以使用 setIntermediate(true) 来显示任务正在进行中,但是有没有办法根据文件的大小确定确切的任务进度。

这是我试图测量的操作,其中 fileArray[2] 是我通过 JFileChooser 选择的文本文件

BufferedReader br3 = new BufferedReader(new FileReader(fileArray[2]));
String line;

while ((line = br3.readLine()) != null) {

StringBuffer sb3 = new StringBuffer(br3.readLine());
progress += 1;
Thread.sleep(10);
pb3.setValue(Math.min(progress, 100));
sb3.reverse();
bwr3.write(sb3.toString());
txt3.append(sb3.toString());

}

预先感谢您的任何帮助或建议。

最佳答案

试试这个:

BufferedReader br1 = new BufferedReader(
new FileReader(fileArray[1]));

while ((line = br1.readLine()) != null) {

StringBuffer sb1 = new StringBuffer(
br1.readLine());
sb1.reverse();
String lineReversed = sb1.toString();

byte[] bytesRead = lineReversed.getBytes();

for (int i = 0; i < bytesRead.length; i++) {
totalBytesRead = totalBytesRead
+ bytesRead[i];
}
}


BufferedReader br1n = new BufferedReader(
new FileReader(fileArray[1]));

int totalBytesReadNow = 0;
int progress = 0;

while ((line = br1n.readLine()) != null) {

StringBuffer sb1n = new StringBuffer(
br1n.readLine());

sb1n.reverse();

String lineReversed = sb1n.toString();

byte[] bytesReadNow = lineReversed.getBytes();

for (int i = 0; i < bytesReadNow.length; i++) {
totalBytesReadNow = totalBytesReadNow
+ bytesReadNow[i];

if (totalBytesReadNow >= totalBytesRead * 0.01) {
progress = progress + 1;
totalBytesReadNow = 0;
}

pb2.setValue(Math.min(progress, 100));
}

bwr1.write(lineReversed + "\n");
txt2.append(lineReversed);
Thread.sleep(0, 1);

}

bwr1.flush();
bwr1.close();
br1n.close();
br1.close();

关于java - 如何使用 JProgressBar 测量任务进度并更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19338771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com