当前位置: 首页 > 知识库问答 >
问题:

为什么不能在actionListener中调用此方法?

燕钟展
2023-03-14

我对学习java中的方法还不熟悉。在python中,使用“函数”很容易,但我最近了解到java没有类似的功能。我有一个方法,应该返回n1和n2中的最低值。我在公共静态int函数的行中得到一个错误。。。

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){ 

            }
        }
    });

共有1个答案

段坚
2023-03-14

如果您想从侦听器实现调用方法,请将其放在实现之外。例如,

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;
}
 类似资料:
  • 我正在学习RxJava。我订阅了一个长时间运行的回调作为可观察回调,并希望看到执行onNext回调: 我希望打印输出“6”,但该方法在此之前完成。 如果我没有在IO调度程序上订阅,那么调用将被阻止,并且我确实看到打印的输出。 我的问题是,如果在IO调度程序上运行,为什么不执行回调。我知道test()方法已终止,但尚未释放对订阅回调的引用。

  • 我知道string1将包含一个空字符串。我的问题是为什么像下面这样两次调用nextLine方法会出现错误:

  • 我正在使用forEach循环一个nodeList。我的代码如下 此代码引发错误为 未捕获的TypeError:Array.Foreach不是函数 然而,一些较旧的浏览器还没有实现nodelist.foreach()和array.from()。但是这些限制可以通过使用array.prototype.foreach()来规避(本文档中有更多内容)。 参考:MDN

  • 问题内容: 假设我有这个SQL查询: 如果我尝试执行此操作,则会收到一条错误消息,提示“ ISNULL附近的语法不正确”。我知道这是ISNULL的正确语法。为什么不能在CONTAINS语句内部调用ISNULL? 问题答案: 试试这个: 当您尝试将表达式放入存储过程调用时,这是相同的问题: CONTAIN需要字符串文字,请参见CONTAINS(Transact-SQL)

  • 我正在尝试设置React组件中的状态,以便它在子组件的输入值发生变化时进行更改。我可以console.log和并获得预期的字符串,但是我不能编译这个函数: 我很困惑,因为我在我的。 我的getInitialState是:

  • 我试着读过类似的问题,但没有成功。