繁体   English   中英

按钮事件处理程序更新文本字段问题

[英]Button Event Handler updating Textfield issue

我在控制台中收到一个错误,该错误为“线程“ JavaFX应用程序线程”中的异常” java.lang.StackOverflowError”。 这是我使用负数时的错误; 我知道它在if / else语句中,因为在尝试将文本字段更新为空之前,没有任何东西会产生错误。

错误似乎指向我的阶乘方法的返回行,这仅在重新单击按钮后将文本字段设置回空格时才会发生。

编辑:我忘记声明该程序已编译,并且将正确重置字段,而在执行此操作时它只会将此错误抛出到控制台中。 我怎样才能解决这个问题?

butCalcFact.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {

            String inputText = tfInput.getText();

            if (Integer.parseInt(inputText) < 0) {
                tfError.setText("Error: Invalid number entered.");
                tfResult.setText("    ");
                System.out.println("Error: Invalid number entered.");
            } else
                tfError.setText(" ");
                tfResult.setText(factorial(Integer.parseInt(inputText)) + "");

        }
    });

public static long factorial(int n) {
    if (n == 0) // Base case
        return 1;
    else
        return n * factorial(n - 1); // Recursive call
}

缺少括号?

接下来的代码要求输入任何文本:

tfResult.setText(factorial(Integer.parseInt(inputText)) + "");

而且方法factorial不能正确处理负值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM