【发布时间】:2011-08-21 15:08:59
【问题描述】:
我正试图找出我对动作侦听器做错了什么。我正在关注多个教程,但当我尝试使用动作侦听器时,netbeans 和 eclipse 给了我错误。
下面是一个简单的程序,我试图让一个按钮在其中工作。
我做错了什么?
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class calc extends JFrame implements ActionListener {
public static void main(String[] args) {
JFrame calcFrame = new JFrame();
calcFrame.setSize(100, 100);
calcFrame.setVisible(true);
JButton button1 = new JButton("1");
button1.addActionListener(this);
calcFrame.add(button1);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == button1)
}
}
动作监听器从未注册,因为if(e.getSource() == button1) 它看不到button1,错误提示找不到符号。
【问题讨论】:
-
1) 类名应该是 EachWordUpperCase。 2)除非添加功能,否则不要扩展框架。 3) 如果扩展框架,您可能不需要在
main(String[])中实例化一个 4) 通常认为更好的做法是为每个需要的 GUI 元素添加一个动作侦听器,而不是使用一个actionPerformed(ActionEvent)方法一个巨大的 if/else 级联。 5) 如果您按照 (4) 中的建议进行操作,问题就会基本消失。 -
可以使用操作 - 许多 UI 元素以一致的方式执行相同操作(例如工具栏和按钮)打开的最佳选择。见docs.oracle.com/javase/tutorial/uiswing/misc/action.html
标签: java swing jbutton actionlistener