检索变量并将其传递给其他类

时间:2017-12-14 20:58:45

标签: java variables

我创建了一个平均程序,其中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));
}

1 个答案:

答案 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);
}