2016-10-28 5 views
-5

私はJavaのメソッドについて学ぶのが初めてです。 Pythonでは、 "Functions"を使うのは簡単でしたが、私は最近Javaにはそれに似たものがないことを学びました。私は、n1とn2のうち最も低い値を返すべき方法を持っています。私は行にエラーが発生していますpublic static int minFunction ...なぜこのメソッドをactionListener内で呼び出すことができないのですか?

Multiple markers at this line 
- Syntax error on token "(", ; 
expected 
- Syntax error on token ",", ; 
expected 
- Syntax error on token ")", ; 
expected 

しかし、構文に問題はないようです。

JButton btnCompute = new JButton("Compute"); 
    btnCompute.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      try { 


       int n1=5; 
       int n2=4; 
       int minValue= minFunction(n1,n2); 


       public static int minFunction(int n1 , int n2) { 
         int min; 
         if (n1 > n2) 
          min = n2; 
         else 
          min = n1; 

         return min; 
        }      
       } 

      catch(NumberFormatException ex){ 

      } 
     } 
    }); 
+8

メソッド内にメソッドを定義することはできません。 – Turing85

+0

[Javaは内部/ローカル/サブメソッドをサポートしていますか?](http://stackoverflow.com/questions/5388584/does-java-support-inner-local-sub-methods) – DimaSan

答えて

0

リスナーの実装からメソッドを呼び出す場合は、実装を外に出してください。たとえば、

JButton btnCompute = new JButton("Compute"); 
public void handleAction() { 
    btnCompute.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      try { 

       int n1 = 5; 
       int n2 = 4; 
       int minValue = minFunction(n1, n2); 

      } 

      catch (NumberFormatException ex) { 

      } 
     } 
    }); 
} 
public int minFunction(int n1, int n2) { 
    int min; 
    if (n1 > n2) 
     min = n2; 
    else min = n1; 

    return min; 
} 
+0

ありがとう! – javaprogrammer

関連する問題