主要的问题是我不知道我的方法需要多长时间才能完成,我有2个线程,一个执行执行该方法的方法,另一个执行进度条的进度,这是我的第一个帖子:
@Override
public void run() {
//This is a static variable, indicate when the method analyzeSentence finish
finish = false;
String sentence = analyzeSentence();
try {
Thread.sleep( 1000 );
} catch (InterruptedException e){
System.err.println( e.getMessage() );
}
finish = true;
}
在我的第二个帖子(进度条线程)中,我有这个:
@Override
public void run() {
i = 1;
while(!Analyze.finish) {
i = (i > 100) ? 1 : i+1; //Here I have the problem
progressBar.setValue(i);
progressBar.repaint();
try {
Thread.sleep(this.value);
} catch (InterruptedException e) {
System.err.println(e.getMessage());
}
if(Analyze.finish) {
progressBar.setValue(100);
break;
}
}
}
问题是进度条将其值重置为零,但方法仍未结束,因此进度条一次又一次地填充...有没有办法获得该方法完成时间的长度?