저는 Java로 계산기를 만들려고합니다. ActionListeners에 대해 알게 된 후, 버튼에 ActionListener를 추가하려고 시도했지만,이 작업을 수행하고 파일을 컴파일하려고 시도한 후에 오류가 발생했습니다. 내 코드는 다음과 같습니다.왜 오류가 발생 했습니까?
Window.java:33 :
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);
}
}
오류는 I이었다 얻었다 예상 Panel.add (텍스트 필드 : 표현 공용 클래스 리스너의 불법 시작이 된 ActionListener { ^ Window.java:38를 구현 // 모든 것을 추가^ Window.java:39, Panel.add (TextField를 예상) :) // 모든 것을 ^ Window.java:38 추가 예상 Window.add (패널); ^ Window.java:39 : expected Window.add (Panel); ^ Window.java:40 : expected Panel.add (openbracket); ^ Window.java:40 : expected Panel.add (openbracket); ^ Window.java:41 : expected Panel.add (closebracket); ^ Window.java:41 : expected Panel.add (closebracket); ^ Window.java:42 : expected Panel.add (clearbutton); ^ Window.java:42 : expected Panel.add (clearbutton); ^ Window.java:43 : expected Panel.add (arcsin); ^ Window.java:43 : expected Panel.add (arcsin); ^ Window.java:44 : expected Panel.add (arccos); ^ Window.java:44 : expected Panel.add (arccos); ^ Window.java:45 : expected Panel.add (arctan); ^ Window.java:45 : expected Panel.add (arctan); ^ Window.java:46 : expected Panel.add (sin); ^ Window.java:46 : expected Panel.add (sin); ^ Window.java:47 : expected Panel.add (cos); ^ Window.java:47 : expected Panel.add (cos); ^ Window.java:48 : expected Panel.add (tan); ^ Window.java:48 : expected Panel.add (tan); ^ Window.java:49 : expected Panel.add (log); ^ Window.java:49 : expected Panel.add (log); ^ Window.java:50 : expected Panel.add (nine); ^ Window.java:50 : expected Panel.add (nine); ^ Window.java:51 : expected Panel.add (eight); ^ Window.java:51 : expected 패널.추가 (8 개); ^ Window.java:52 : expected Panel.add (seven); ^ Window.java:52 : expected Panel.add (seven); ^ Window.java:53 : expected Panel.add (six); ^ Window.java:53 : expected Panel.add (six); ^ Window.java:54 : expected Panel.add (5); ^ Window.java:54 : expected Panel.add (5); ^ Window.java:55 : expected Panel.add (4); ^ Window.java:55 : expected Panel.add (4); ^ Window.java:56 : expected three.addActionListener (리스너); ^ Window.java:56 : expected three.addActionListener (리스너); ^ Window.java:57 : expected Panel.add (three); ^ Window.java:57 : expected Panel.add (three); ^ Window.java:58 : expected Panel.add (two); ^ Window.java:58 : expected Panel.add (two); ^ Window.java:59 : expected Panel.add (one); ^ Window.java:59 : expected Panel.add (one); ^ Window.java:60 : expected Panel.add (제로); ^ Window.java:60 : expected Panel.add (제로); ^ Window.java:61 : expected Panel.add (radixpoint); ^ Window.java:61 : expected Panel.add (radixpoint); ^ Window.java:62 : expected Panel.add (동일); ^ Window.java:62 : expected Panel.add (동일); ^ Window.java:63 : expected Window.setVisible (true); ^ Window.java:63 : 형식이 잘못되었습니다. Window.setVisible (true); ^ Window.java:65 : 파싱하는 동안 파일 끝에 도달했습니다. } ^ 왜 이러한 오류가 발생 했습니까? 이유를 설명하십시오.
클래스와 Jframe 변수의 이름이 같아야합니다. 그건 아마 물건을 어기는거야. 또한 클래스 자체가 아닌 Listener 클래스의 인스턴스를 버튼에 추가해야합니다. – resueman
GUI를 반드시 설치하고 기본 사항을 먼저 알아야합니다. 간단한 콘솔 프로그램으로 시작하십시오. [처음부터 여기에서 시작할 수 있습니다.] (http://docs.oracle.com/javase/tutorial/reallybigindex.html) –