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

Java 按钮事件处理程序更新文本字段问题,java,javafx,event-handling,java-8,javafx-8,Java,Javafx,Event Handling,Java 8,Javafx 8,我在控制台中接收到一个错误,它读取“线程中的异常”JavaFX应用程序线程“java.lang.StackOverflowerError”。这个错误是当我使用负数时;我知道它在这个if/else语句中,因为在我尝试将textfields更新回空之前,没有任何东西产生错误 错误似乎指向阶乘方法的返回行,只有在重新单击按钮后将textfields设置回空格时才会发生这种情况 编辑:我忘记声明程序编译并将正确重置字段,它只是在执行此操作时将此错误抛出控制台。我怎样才能解决这个问题 butCalcFac

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

错误似乎指向阶乘方法的返回行,只有在重新单击按钮后将textfields设置回空格时才会发生这种情况

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

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
}
butCalcFact.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
字符串inputText=tfInput.getText();
if(Integer.parseInt(inputText)<0){
tfError.setText(“错误:输入的数字无效。”);
tfResult.setText(“”);
System.out.println(“错误:输入的数字无效”);
}否则
tfError.setText(“”);
tfResult.setText(阶乘(整数.parseInt(输入文本))+“”);
}
});
公共静态长阶乘(int n){
如果(n==0)//基本情况
返回1;
其他的
返回n*阶乘(n-1);//递归调用
}
缺少括号

下一个代码调用任何输入文本:

tfResult.setText(factorial(Integer.parseInt(inputText)) + "");
方法
factorial
不能正确处理负值。

缺少括号

下一个代码调用任何输入文本:

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

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

该方法是在数字为0或更大时调用的,因此我将其放在else语句中。当电话号码是负数时,它不会被呼叫吗?哎呀,别介意我看到了丢失的括号,谢谢!该方法意味着在数字为0或更大时调用,因此我将其放在else语句中。当电话号码是负数时,它不会被呼叫吗?哎呀,别介意我看到了丢失的括号,谢谢!