主题:急急急急 下面代码有什么错误
我要飞飞飞
[专家分:180] 发布于 2008-01-10 15:11:00
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class test extends JFrame implements ActionListener{
public test(){
JButton jbtok=new JButton("ok");
getContentPane().add(jbtok);
}
public void actionPerform(ActionEvent e){
if(e.getSource()==jbtok)
System.out.println("ok button is clicked");
}
}
最后更新于:2008-01-12 06:41:00
回复列表 (共6个回复)
沙发
DeadSnow [专家分:60] 发布于 2008-01-10 17:16:00
没有添加监视器阿
板凳
我要飞飞飞 [专家分:180] 发布于 2008-01-10 17:29:00
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class test extends JFrame implements ActionListener{
public test(){
JButton jbtok=new JButton("ok");
getContentPane().add(jbtok);
jbtok.addActionListener(this);
}
public static void main(String[]args){
test f=new test();
f.setTitle("Button");
f.setSize(200,100);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
public void actionPerform(ActionEvent e){
if(e.getSource()==jbtok)
System.out.println("ok button is clicked");
}
}加了监视器 还是有错
3 楼
billgacsli [专家分:1300] 发布于 2008-01-11 20:21:00
你是用什么IDE啊?还是没用,直接用JDK?
你添加监视器后的代码根本就连编译都通不过。编译的错误是最容易修正的,要学会根据错误信息找原因,经常看看JDK DOC。这错误不是明摆着的嘛?
test.java:4: test 不是抽象的,并且未覆盖 java.awt.event.ActionListener 中的抽象方法 actionPerformed(
java.awt.event.ActionEvent)
public class test extends JFrame implements ActionListener{
^
test.java:19: 找不到符号
符号: 变量 jbtok
位置: 类 test
if(e.getSource()==jbtok)
^
2 错误
第一个错误自然是方法名不对。
第二个错误自然是变量作用域不对。
4 楼
我要飞飞飞 [专家分:180] 发布于 2008-01-12 06:36:00
我还是没有明白 能不能说清楚点啊
5 楼
Finder [专家分:1460] 发布于 2008-01-12 15:05:00
实现接口的时候需要覆盖接口中声明的抽象方法。ActionListener接口中声明的抽象方法是public void actionPerformed(ActionEvent e);你用public void actionPerform(ActionEvent e),自然不是覆盖掉这个方法,JVM认为你没有覆盖接口中的方法,所以就会报错啊。
而jbtok是在test方法里面定义的,在test方法外面不能看到这个定义,所以JVM认为这个jbtok是没有定义的。
6 楼
happyboy2007 [专家分:3900] 发布于 2008-01-12 18:05:00
要在一个类中的多个方法中访问一个变量,要将其设置为属性。
同时按钮要添加监听才能触发事件。
窗体也要设置为显示。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class test extends JFrame implements ActionListener{
private JButton jbtok=new JButton("ok");
public test(){
jbtok.addActionListener(this);
getContentPane().add(jbtok);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[]args){
new test();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==jbtok)
System.out.println("ok button is clicked");
}
}
我来回复