Java 有没有一种方法可以显示另一个类中函数的进度?

Java 有没有一种方法可以显示另一个类中函数的进度?,java,progress-bar,swt,Java,Progress Bar,Swt,我在制作进度条时遇到了麻烦。我想让这个条显示功能“GiveRating”与它的进度之间的距离。它不必非常精确。我是Java新手,请用简单的语言解释。我正在为GUI使用JavaSWT // this is the new progress bar which is showing in a shell: ProgressBar progressBar = new ProgressBar(shlRatingScheme, SWT.NONE); progressBar.setForeground(

我在制作进度条时遇到了麻烦。我想让这个条显示功能“GiveRating”与它的进度之间的距离。它不必非常精确。我是Java新手,请用简单的语言解释。我正在为GUI使用JavaSWT

// this is the new progress bar which is showing in a shell:

ProgressBar progressBar = new ProgressBar(shlRatingScheme, SWT.NONE); 
progressBar.setForeground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
progressBar.setBounds(10, 208, 170, 17);


// this is the button that's starts the process:

btnFotosRaten.setText("Foto's raten");
btnFotosRaten.setBounds(185, 270, 75, 25);
btnFotosRaten.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e) {switch (e.type) {case SWT.Selection:
PhotoRating d = new PhotoRating();
if(sFolder == null | dFolder == null) {
String message ="Vul bronmap en doelmap in AUB!";
JOptionPane.showMessageDialog(new JFrame(), message, "Oeps", JOptionPane.ERROR_MESSAGE);
}else {
d.GiveRating(dFolder);

// so I would like to let the progress bar show how far d.GiveRating(dfolder) is. Is there a simple way to do that?

}
String message ="De foto's in "+dFolder+" zijn gerated!"; JOptionPane.showMessageDialog(new JFrame(), message, "Info", JOptionPane.INFORMATION_MESSAGE);
break;
}
}
});
不能在函数运行时“监视”它。你能做的就是让函数告诉你它做了什么

您可以实现称为“观察者模式”(observer pattern)的东西。在您的情况下,您将需要一个中间类来观察函数的运行,并且对于每个事件,它都会更新您的进度条

差不多

公共类ProgressBarObserver实现了Observer{
ProgressBar-pb;
公共ProgressBarObserver(ProgressBar pb){
这是1.pb=pb;
}
@凌驾
公共无效更新(int进度){
pb.step(progress);//无法调用progressbar的正确函数
}
}
公共类Worker实现了可观察的{
观察员o;
公职人员(观察员o){
这个。o=o;
}
公共无效剂量测定法(){
//某物
o、 更新(1);
//别的
o、 更新(1);
//一些其他的东西
o、 更新(1);
//等等
}
}
公共班级经理{
公共静态void main(字符串…参数){
ProgressBar pb=新的ProgressBar();
ProgressBarObserver pbo=新的ProgressBarObserver(pb);
工人w=新工人(pbo);
w、 doSomething();
}
}
希望有帮助