【发布时间】:2014-07-10 21:11:32
【问题描述】:
我正在尝试用 Java 制作计算器。在了解了 ActionListeners 之后,我尝试将 ActionListener 添加到按钮中,但是在我这样做并尝试编译文件之后,我得到了一个错误。我的代码如下。
import javax.swing.*;//import the packages needed for gui
import java.awt.*;
public class Window {
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;
public 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);
three.addActionListener(Listener);
Panel.add(three);
Panel.add(two);
Panel.add(one);
Panel.add(zero);
Panel.add(radixpoint);
Panel.add(equal);
Window.setVisible(true);
}
}
我得到的错误是:
Window.java:33:表达式的非法开始 公共类监听器实现 ActionListener { ^ Window.java:38:预期 Panel.add(TextField);//添加所有的东西 ^ Window.java:38:预期 Panel.add(TextField);//添加所有的东西 ^ Window.java:39:预期 Window.add(面板); ^ Window.java:39:预期 Window.add(面板); ^ Window.java:40:预期 Panel.add(openbracket); ^ Window.java:40:预期 Panel.add(openbracket); ^ Window.java:41:预期 Panel.add(closebracket); ^ Window.java:41:预期 Panel.add(closebracket); ^ Window.java:42:预期 Panel.add(clearbutton); ^ Window.java:42:预期 Panel.add(clearbutton); ^ Window.java:43:预期 Panel.add(arcsin); ^ Window.java:43:预期 Panel.add(arcsin); ^ Window.java:44:预期 面板.add(arccos); ^ Window.java:44:预期 面板.add(arccos); ^ Window.java:45:预期 Panel.add(arctan); ^ Window.java:45:预期 Panel.add(arctan); ^ Window.java:46:预期 Panel.add(sin); ^ Window.java:46:预期 Panel.add(sin); ^ Window.java:47:预期 面板.add(cos); ^ Window.java:47:预期 面板.add(cos); ^ Window.java:48:预期 面板.add(tan); ^ Window.java:48:预期 面板.add(tan); ^ Window.java:49:预期 面板.add(log); ^ Window.java:49:预期 面板.add(log); ^ Window.java:50:预期 Panel.add(九); ^ Window.java:50:预期 Panel.add(九); ^ Window.java:51:预期 Panel.add(八); ^ Window.java:51:预期 Panel.add(八); ^ Window.java:52:预期 Panel.add(七); ^ Window.java:52:预期 Panel.add(七); ^ Window.java:53:预期 Panel.add(六); ^ Window.java:53:预期 Panel.add(六); ^ Window.java:54:预期 Panel.add(五); ^ Window.java:54:预期 Panel.add(五); ^ Window.java:55:预期 Panel.add(四); ^ Window.java:55:预期 Panel.add(四); ^ Window.java:56:预期 三.addActionListener(Listener); ^ Window.java:56:预期 三.addActionListener(Listener); ^ Window.java:57:预期 Panel.add(三); ^ Window.java:57:预期 Panel.add(三); ^ Window.java:58:预期 Panel.add(二); ^ Window.java:58:预期 Panel.add(二); ^ Window.java:59:预期 Panel.add(one); ^ Window.java:59:预期 Panel.add(one); ^ Window.java:60:预期 Panel.add(零); ^ Window.java:60:预期 Panel.add(零); ^ Window.java:61:预期 Panel.add(radixpoint); ^ Window.java:61:预期 Panel.add(radixpoint); ^ Window.java:62:预期 Panel.add(等于); ^ Window.java:62:预期 Panel.add(等于); ^ Window.java:63:预期 Window.setVisible(true); ^ Window.java:63:类型的非法开始 Window.setVisible(true); ^ Window.java:65:解析时到达文件末尾 } ^ 为什么我会收到这些错误?请解释原因。
【问题讨论】:
-
您的类和 Jframe 变量具有相同的名称。这可能会破坏事情。此外,您需要将 Listener 类的实例添加到按钮,而不是类本身。
-
你绝对应该放下GUI,先学习基础知识。从简单的控制台程序开始。你可以start from the beginning here
标签: java swing compiler-errors calculator