如何在“外部”递归函数中使用GUI值

时间:2013-06-06 18:47:16

标签: java user-interface

我希望我的问题中的术语有一定意义,我仍然掌握它,如果它不对,那么我道歉。

所以,首先,我在前几天制作了我的第二个递归函数(我希望!)并且它可以正常工作。它输出“5 x 4 x 3 x 2 x 1”,因此只是一个简单的因子。

 public class Main {

    public static String fact(int n) {
        if(n == 1){ //see how I made n equaled to 1? I'd like to change that to whatever value the user of the program inputs, so for ex...it could be 8
            return "1";
        }
        return n + " x " + (fact(n-1)); 
    }
    public static void main(String[] args) {
        System.out.println(fact(5)); 
       //so if it was 8 it would output "8 x 7 x 6 x ...etc. x 1"
    }

 }

private void okButtonActionPerformed(java.awt.event.ActionEvent evt) { //ok Button

        ItsATextField.setText(fact(5)); //outputs on GUI

}

但是我已经移动了这段代码,并将其合并到一个使用GUI的程序中,并使其在textField中输出答案。现在,该函数从'5'开始,但我想将其更改为值'n'(作为程序用户输入的值),所以我不太确定该怎么做。

我是否必须在“公共类MyProgram”下创建一个类?并使用该类中的getText获取输入的值?

任何提示或提示将不胜感激! =)

1 个答案:

答案 0 :(得分:0)

没问题:

if (n==1) {
    return 1;
}

这是递归的“停止条件”。不要改变它。

如果你想计算事实(aValue),只需用'aValue'作为参数调用fact ... 如果你有一个JTextField(我们称之为theJTextField): ItsATextField.setText(Main.fact(Integer.parse(theJTextField.getText())));