我创建了一个平均程序,其中average
变量包含平均值。我希望在我的图形用户界面中打印出值,但我的GUI在不同的类中。
我似乎无法让变量“average”在我的不同班级中工作。无论我怎样尝试,我都会得到“无法找到符号”的平均值。这是我的代码:
System.out.println("this is the average: "+ average);
// this perfectly prints out the average from the
// class "public void test" and the method "calcAverage"
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// this is my button in a different class where I want
// my average to append to (print to the GUI) - and my
// obviously non-working attempt at it
JTextArea.append (test.calcAverage(average));
}
答案 0 :(得分:0)
我希望在我的图形用户界面中打印出平均值, 但是我的gui在另一个班级。
让gui类提供一个回调方法,允许直观地更新信息。
在Swing中:
public MyFrame extends JFrame implements MyFrameCallback{
public void updateAverage(double average){
... // update the graphical widget
}
}
其中MyFrameCallback
是一个接口,例如:
public interface MyFrameCallback{
void updateAverage(double average);
}
现在,当您创建我们将调用MyAverageModel
的模型类时,请在其构造函数中添加MyFrameCallback
:
public MyAverageModel (MyFrameCallback myFrameCallback){
this.myFrameCallback = myFrameCallback;
}
现在,当您计算MyAverageModel
中的平均值时,您可以调用gui的回调:
public calculAndUpdateAverage(){
...
double average = ...;
myFrameCallback.updateAverage(average);
}