我本来的程序大概是这样:class XXX extends JFrame implements ActionListener{
...
public XXX(){
button1 = new JButton("XXX");addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
...
}});}
...}...
但是编译的时候,都会出来“...不是抽象的,并且未覆盖...”的错误!GOOGLE,百度了很久,别人都是actionPerformed没有实现,但是我的都写了。后来我干脆把 implements ActionListener给 注释掉了,却又可以编译运行了!给位,这是为什么呢?小白不很懂!
但把public void actionPerformed(ActionEvent e){}单独写为一个方法时这是一定要实现ActionListener这个接口的,这个我晓得~
...
public XXX(){
button1 = new JButton("XXX");addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
...
}});}
...}...
但是编译的时候,都会出来“...不是抽象的,并且未覆盖...”的错误!GOOGLE,百度了很久,别人都是actionPerformed没有实现,但是我的都写了。后来我干脆把 implements ActionListener给 注释掉了,却又可以编译运行了!给位,这是为什么呢?小白不很懂!
但把public void actionPerformed(ActionEvent e){}单独写为一个方法时这是一定要实现ActionListener这个接口的,这个我晓得~
继承了这个接口
类里需要实现接口中定义的方法。你说反了。应该是implements了接口就必须写actionPerformed方法。
...
}
单独拿出来写
public void actionPerformed(ActionEvent e){
...
}});
这样写就不用implements ActionListener了
new ActionListener(){
public void actionPerformed(ActionEvent e){ }
//这是一个内部类,是一个实现了ActionListener接口并重写actionPerformed()
方法的实现器,而不是class XXX 重写actionPerformed(),
}
(你只是另外新建了一个匿名类中含有这个方法)