0
我想要進度條顯示正在閱讀的文件的百分比,但我似乎無法用我的代碼完成此操作。 進度條根本無法啓動。我認爲我的邏輯是一團糟。有關如何解決此問題的任何建議?下面如何根據文件的閱讀進度更新進度條?
代碼:
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)中設置了最小值和最大值。
也可能是一個好主意來調用'progressBar.setMaximum()'。 – vanza
我已經在我的進度條構造函數(0,100)中設置了最小值和最大值。 – user2840682