我编译了我的代码并得到了错误:
C:\Users\RJ\Desktop>javac windowTest.java
windowTest.java:17: error: <identifier> expected
click.addActionListener(new ActionListener(){
^
windowTest.java:22: error: ';' expected
});
^
2 errors
我仍然是java的新手,并希望通过示例和/或一步一步的帮助解释。如果我移动覆盖我得到一个错误,说我没有覆盖。我的代码是:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.*;
import java.util.Scanner;
public class windowTest extends JFrame implements ActionListener{
public static void main(String args[]){
JFrame frame = new JFrame();
JLabel label = new JLabel("This is a test.");
JButton click = new JButton("Test");
JPanel buttonPan = new JPanel();
JPanel textPan = new JPanel();
final JTextField textIn = new JTextField();
@Override
click.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String text = textIn.getText();
System.out.println(text);
}
});
buttonPan.setSize(100, 100);
textIn.setPreferredSize(new Dimension(700, 48));
textPan.add(textIn);
buttonPan.add(click);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 700);
frame.setLocationRelativeTo(null);
frame.setLayout(new BorderLayout());
label.setHorizontalAlignment(JLabel.CENTER);
label.setVerticalAlignment(JLabel.CENTER);
frame.add(label, BorderLayout.NORTH);
frame.add(buttonPan, BorderLayout.SOUTH);
frame.add(textPan, BorderLayout.CENTER);
frame.setVisible(true);
frame.setTitle("Window Test");
}
}
答案 0 :(得分:2)
第一个问题,你需要向下移动@Override
,因为这是一个适用于匿名类内部方法定义的注释。
click.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
String text = textIn.getText();
System.out.println(text);
}
});
第二个问题,您的windowTest
班级声称 implements ActionListener
但未实施actionPerformed
。由于您似乎不需要它,您可以在声明中删除它。
public class windowTest extends JFrame{
...
}
通过这两项更改,您的应用程序将编译并运行。