0

这是一些颂歌,在 fields.getText() 中声明值后,它通过递归函数计算公式。但是java不喜欢在actionPerformed按钮下有任何“公共”。我从来没有使用过其中之一……但是您认为 ActionListener 可以完成这项工作吗?有任何想法吗?

private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt) {

         public int Method() { //underlined red
            int n = Integer.parseInt(objectsChooseField.getText());
            int r = Integer.parseInt(chooseFromField.getText());
            int result = C( n, r );
        }

        public int C( int n, int r ) { //underlined
            int res = faculty( n ) / ( faculty( r ) * ( n - r ));
            return res;
        }

        public int faculty( n ) { //underlined
            if ( n > 1 )
                return n * faculty( n - 1 );
            return 1;
        }

    }

编辑:

我想我可能对乔的回答有点字面意思……但你的意思是这样的……?

public int Method() { //moved above actionPerformed

private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt) {

                int n = Integer.parseInt(objectsChooseField.getText()); //continued method?
                int r = Integer.parseInt(chooseFromField.getText());
                int result = C( n, r );
            }
//rest of code below
4

2 回答 2

2

您不能将方法放在 Java 中的另一个方法中。将这 3 种方法移到calculateButtonActionPerformed(). 然后,您可以从内部调用它们calculateButtonActionPerformed()

例如,你不能在 Java 中这样做:

public void method1() {
    public void method2() {
    }
}

你必须这样做:

public void method1() {
}

public void method2() {
}
于 2013-05-11T18:56:37.883 回答
0
public int method() { //your handlers
}
public int c(int n, int r) { //your handlers
}
public int faculty(int n) { //your handlers
}
public void calculateButtonActionPerformed(ActionEvent e) {
    method();
}

这就是乔 F 在他的回答中所解释的。试试这个方法。

于 2013-05-11T19:31:21.537 回答