gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:38:42 26 4
gpt4 key购买 nike

我在控制台中收到一条错误,内容为“线程“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 无法正确处理负值。

关于java - 按钮事件处理程序更新文本字段问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37126909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com