0

これは、fields.getText() で値を宣言した後、再帰関数によって式を計算するという頌歌です。ただし、Java は、actionPerformed ボタンの下に「public」があることを好まないように見えます。私はこれらのいずれかを使用したことはありません...しかし、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 に答える