如何获得程序进行编译?

玩游戏的人

我试图将ActionListener添加到Java程序中的按钮之一,但是其方法导致发生错误。这是我的代码:

import javax.swing.*;//import the packages needed for gui
import java.awt.*;
import java.awt.event.*;
public class Calculator {
    public static void main(String[] args) {
        JFrame window = new JFrame("Window");// makes a JFrame
        window.setSize(300, 350);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel(new FlowLayout());// makes the panel,
                                                    // textfield and buttons
        JTextField textField = new JTextField(20);
        JButton openbracket = new JButton("(");
        JButton closebracket = new JButton(")");
        JButton clearbutton = new JButton("C");
        JButton arcsin = new JButton("arcsin");
        JButton arccos = new JButton("arccos");
        JButton arctan = new JButton("arctan");
        JButton sin = new JButton("sin");
        JButton cos = new JButton("cos");
        JButton tan = new JButton("tan");
        JButton log = new JButton("log");
        JButton seven = new JButton("7");
        JButton eight = new JButton("8");
        JButton nine = new JButton("9");
        JButton four = new JButton("4");
        JButton five = new JButton("5");
        JButton six = new JButton("6");
        JButton one = new JButton("1");
        JButton two = new JButton("2");
        JButton three = new JButton("3");
        JButton zero = new JButton("0");
        JButton radixpoint = new JButton(".");
        JButton equal = new JButton("=");
        String values = null;
        class Listener implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                values = values + "3";
                textField.setText(values);
            }
        }
        panel.add(textField);// adding all the things
        window.add(panel);
        panel.add(openbracket);
        panel.add(closebracket);
        panel.add(clearbutton);
        panel.add(arcsin);
        panel.add(arccos);
        panel.add(arctan);
        panel.add(sin);
        panel.add(cos);
        panel.add(tan);
        panel.add(log);
        panel.add(nine);
        panel.add(eight);
        panel.add(seven);
        panel.add(six);
        panel.add(five);
        panel.add(four);
        panel.add(three);
        panel.add(two);
        panel.add(one);
        panel.add(zero);
        panel.add(radixpoint);
        panel.add(equal);
        window.setVisible(true);
    }
}

我收到的错误消息是:

Calculator.java:36: local variable values is accessed from within inner class; needs to be declared final values = values + "3"; ^

Calculator.java:36: local variable values is accessed from within inner class; needs to be declared final values = values + "3"; ^

Calculator.java:37: local variable values is accessed from within inner class; needs to be declared final textField.setText(values); ^

Calculator.java:37: local variable textField is accessed from within inner class; needs to be declared final textField.setText(values); ^

4 errors

编译器希望我将String对象和JTextField对象声明为final,但是如果将它们声明为final,则将无法对其进行更改。如何在不更改对象的情况下使计算器工作?

千公里

好了,为了使此代码得以编译,您需要移动String值并JTextField textField成为main的静态成员。这是因为那些来自静态main方法。

public class Calculator {

static String values = null;
static JTextField textField = new JTextField(20);
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我如何获得Formik进行编译?

来自分类Dev

如何获得此Chicken Scheme代码进行编译?

来自分类Dev

引导加载程序-如何使用C进行向前编译

来自分类Dev

引导加载程序-如何使用C进行向前编译

来自分类Dev

如何在Ubuntu上使用spdy获得nginx而无需对其进行编译?

来自分类Dev

如何在Ubuntu上使用spdy获得nginx而无需对其进行编译?

来自分类Dev

如何使用 Bruce 的 C Compiler 进行编译以获得在 8086 处理器上运行的 asm 文件

来自分类Dev

在以下程序中获得编译链接错误

来自分类Dev

如何获得程序证书?

来自分类Dev

如何使用libmosquitto进行编译

来自分类Dev

如何使用clang ++进行编译?

来自分类Dev

如何使用minilibx进行编译?

来自分类Dev

如何使用clang ++进行编译?

来自分类Dev

如何识别程序集已使用.NET 4.5(相对于.NET 4.0)进行编译?

来自分类Dev

使用VC ++进行C程序编译[2005]

来自分类Dev

如何从AngularJS的编译中获得承诺?

来自分类Dev

如何获得静态C编译器?

来自分类Dev

如何获得ubuntu的Java编译器?

来自分类Dev

Cordova应用程序可以编译,但运行时会崩溃。如何获得错误报告?

来自分类Dev

如何获得CMake工具以使用C ++ 11(或更高版本)功能在Visual Studio Code中编译程序?

来自分类Dev

如何编译这个fortan程序?

来自分类Dev

如何获得程序崩溃的行

来自分类Dev

如何获得程序崩溃的行

来自分类Dev

如何临时禁用项目中的程序包以使其无法在Java EE IDE中进行编译

来自分类Dev

C ++如何将源代码生成的映射包括到应用程序中以进行预编译阶段

来自分类Dev

我如何获得Ubuntu 15.10(Wily)Beta1安装程序(如果我准备对其进行测试)?

来自分类Dev

如何使用交叉编译器进行编译?

来自分类Dev

如何在QtCreator中进行远程编译

来自分类Dev

如何“优雅地”进行条件编译?

Related 相关文章

  1. 1

    我如何获得Formik进行编译?

  2. 2

    如何获得此Chicken Scheme代码进行编译?

  3. 3

    引导加载程序-如何使用C进行向前编译

  4. 4

    引导加载程序-如何使用C进行向前编译

  5. 5

    如何在Ubuntu上使用spdy获得nginx而无需对其进行编译?

  6. 6

    如何在Ubuntu上使用spdy获得nginx而无需对其进行编译?

  7. 7

    如何使用 Bruce 的 C Compiler 进行编译以获得在 8086 处理器上运行的 asm 文件

  8. 8

    在以下程序中获得编译链接错误

  9. 9

    如何获得程序证书?

  10. 10

    如何使用libmosquitto进行编译

  11. 11

    如何使用clang ++进行编译?

  12. 12

    如何使用minilibx进行编译?

  13. 13

    如何使用clang ++进行编译?

  14. 14

    如何识别程序集已使用.NET 4.5(相对于.NET 4.0)进行编译?

  15. 15

    使用VC ++进行C程序编译[2005]

  16. 16

    如何从AngularJS的编译中获得承诺?

  17. 17

    如何获得静态C编译器?

  18. 18

    如何获得ubuntu的Java编译器?

  19. 19

    Cordova应用程序可以编译,但运行时会崩溃。如何获得错误报告?

  20. 20

    如何获得CMake工具以使用C ++ 11(或更高版本)功能在Visual Studio Code中编译程序?

  21. 21

    如何编译这个fortan程序?

  22. 22

    如何获得程序崩溃的行

  23. 23

    如何获得程序崩溃的行

  24. 24

    如何临时禁用项目中的程序包以使其无法在Java EE IDE中进行编译

  25. 25

    C ++如何将源代码生成的映射包括到应用程序中以进行预编译阶段

  26. 26

    我如何获得Ubuntu 15.10(Wily)Beta1安装程序(如果我准备对其进行测试)?

  27. 27

    如何使用交叉编译器进行编译?

  28. 28

    如何在QtCreator中进行远程编译

  29. 29

    如何“优雅地”进行条件编译?

热门标签

归档