【发布时间】:2014-03-06 03:20:10
【问题描述】:
我希望进度条显示正在读取的文件的百分比,但我的代码似乎无法做到这一点。 进度条根本不会启动。我认为我的逻辑是一团糟。有关如何解决此问题的任何建议?
代码如下:
public void run()
{
progressBar.setIndeterminate(false);
try
{
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
long fileSize = fileName.length();
String line = "";
String concatString = "";
keepGoing = true;
while((((line = br.readLine()) != null)) && keepGoing == true)
{
concatString += line; //concatenated string
int stringLength = concatString.length(); //length of concatenated string
int progressNum = (int) (stringLength / fileSize); //value to update progress bar
try
{
Thread.sleep(1000);
}
catch(InterruptedException ie)
{
ie.printStackTrace();
}
progressBar.setValue(progressNum);
}
progressBar.setString("Finished file read...");
progressBar.setIndeterminate(true);
synchronized(obj)
{
if(keepGoing == true)
{
keepGoing = false;
progressBar.setString("Halted!");
}
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
请记住我是一个初学者程序员。 编辑:我已经在我的进度条构造函数中设置了最小值和最大值(0、100)。
【问题讨论】: