【发布时间】:2014-10-14 14:51:00
【问题描述】:
我拼凑了以下HelloWorld 类型的程序,它打开一个窗口,显示一个按钮,然后通过关闭窗口来处理按钮单击。在添加ActionListener 以处理单击事件的部分进行编译时出现错误。查看网络上的其他示例和教程,这看起来应该可以工作。有什么想法吗?
import java.util.*;
import javax.swing.*;
import java.awt.*;
public class MyTest{
public static void main(String args[]) throws Exception {
JFrame guiFrame = new JFrame("Test Frame");
guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
guiFrame.setTitle("Example GUI");
guiFrame.setSize(300,250);
guiFrame.setLocationRelativeTo(null);
JButton btn = new JButton("Hit Me");
btn.addActionListener( new ActionListener(){
@Override
public void actionPerformed(ActionEvent event)
{
guiFrame.close();
}
});
guiFrame.add(btn, BorderLayout.SOUTH);
guiFrame.setVisible(true);
}
}
错误:
javac MyTest.java
MyTest.java:17: error: cannot find symbol
btn.addActionListener( new actionListener(){
^
symbol: class actionListener
location: class MyTest
1 error
【问题讨论】:
-
尝试导入 import java.awt.event.*
-
就我而言,您需要首先解决来自
guiFrame.close();的问题,编译器首先会抱怨这个问题。Cannot refer to a non-final variable guiFrame inside an inner class defined in a different method -
错误消息
btn.addActionListener( new actionListener(){--> 应该是ActionListener。好像您的代码与错误信息不符? -
我不知道为什么没有人指出
guiFrame.close()是代码不起作用的原因之一。
标签: java