【问题标题】:Displaying a returned value when a button is pressed?按下按钮时显示返回值?
【发布时间】:2012-05-28 02:43:55
【问题描述】:

我这里有一些代码可以计算数组的 maxValue:

 public static int getMaxValue(int[] marks){
     int maxValue = marks[0];
     for(int i=1;i < marks.length;i++){
         if(marks[i] > maxValue){
             maxValue = marks[i];
         }
     }
     return maxValue;
 }

我想在用户按下按钮时显示最大值。这是我到目前为止所拥有的,但它不起作用:

private void analyzeButtonActionPerformed(java.awt.event.ActionEvent evt) {

    maxValue mv = new maxValue ();
    analyzeTextArea.setText("Maximum:" + maxValue.toString());

}

感谢您的帮助!

【问题讨论】:

  • 你试过把 maxValue.toString() 换成 maxValue.getMaxValue(intArray);
  • 当你尝试这个时会发生什么......?
  • @ria 错误提示,“找不到符号:变量 maxValue”
  • @user1320716 对于你的代码,我收到一条错误消息,“找不到符号:变量 intArray”和“找不到符号:变量 maxValue”
  • 是.. maxValue 不在您的 analyzeButtonActionPerformed 方法的范围内,如以下答案之一所示,您可以直接在包含静态方法的类上调用静态方法 getMaxValue..

标签: java awt


【解决方案1】:

由于您的方法是静态的,您可以简单地使用包含它的类的名称来调用它。

analyzeTextArea.setText("Maximum:" + YourClassNameHere.getMaxValue());

你不能实例化一个方法。

【讨论】:

  • @user1419306,我认为getMaxValue需要一个必填参数,int[]类型。但是我觉得函数调用看起来很尴尬。 getMaxValue 不需要参数似乎更好。也许,删除类 maxValue 并使函数 getMaxValue 成为感兴趣的类中的函数。
  • 我试过这个,几乎整个程序都充满了错误。
  • @user1419306:你不能复制代码逐字;我给你一个你需要使用的例子。如果方法是静态的,则使用类名,并传入它需要的任何参数。 (实际上,访问器不应该需要一个参数——如果你想让它计算最大值,你应该重命名它;它很容易让程序员感到困惑。)
【解决方案2】:

我想你正在寻找这样的东西......

private void analyzeButtonActionPerformed(java.awt.event.ActionEvent evt) {
    analyzeTextArea.setText("Maximum:" + getMaxValue(arrayOfValues));
}

要调用一个方法,除了调用methodName(inputValues),你不需要做任何事情——你不能通过new methodName()创建方法的实例

如果该方法在不同的类中,并且它是像您的情况一样的 static 方法,您可以这样做...

private void analyzeButtonActionPerformed(java.awt.event.ActionEvent evt) {
    analyzeTextArea.setText("Maximum:" + MyClass.getMaxValue(arrayOfValues));
}

否则如果方法在不同的类中并且不是static,那么你先创建类的实例,然后调用方法...

private void analyzeButtonActionPerformed(java.awt.event.ActionEvent evt) {
    MyClass example = new MyClass();
    analyzeTextArea.setText("Maximum:" + example.getMaxValue(arrayOfValues));
}

【讨论】:

  • 只要这段代码在同一个类中,它就可以工作(虽然很可能是,但要注意边缘情况)。
  • 不在同一个类中,我在导入语句正下方的数组后面声明了maxValue方法。
  • 同意 - 我把它当作同一个班级的一部分,作为它的作业,看起来它可能是一个非常简单的要求。但是,您的评论是正确的,因此我在回答中添加了一些其他信息以涵盖这些情况。谢谢
  • @user1419306 请查看我编辑的答案以使用不同的类名。您还需要将值 arrayOfValues 更改为数组的名称,并将 MyClass 更改为包含 getMaxValue() 方法的类的名称。
  • 数组的名字是“marks”但是类的名字不是“getMaxValue”吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-25
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多