java - 如何将 'public int' 合并到 actionPerformed 按钮中?

标签 java swing jbutton actionlistener

这是一段颂歌,在 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

最佳答案

在 Java 中,您不能将方法放入另一个方法中。将这 3 个方法移到 calculateButtonActionPerformed() 外部并与其处于同一级别。然后,您可以从 calculateButtonActionPerformed() 中调用它们。

例如,您不能在 Java 中执行此操作:

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

你必须这样做:

public void method1() {
}

public void method2() {
}

关于java - 如何将 'public int' 合并到 actionPerformed 按钮中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16500587/

相关文章:

java - 根据第一个数据框 Java 中的列创建具有新列值的新 Spark DataFrame

java - 从 Scala(和 Java)访问 DRb 对象(例如 Ruby 队列)的最佳方式是什么?

java - 如何创建可变 jbutton 数组

java - 在 Java 中更改颜色选择器按钮的背景颜色

java - Java中的十六进制解析

java - 增加遵循复合模式的数据结构中的元素

java - 是什么导致 Java JLabel 图标的图像质量差?

java - 循环浏览 jComboBox

java - JTextArea 不显示 native 字体表情符号

java - Swing 和 Activity