我本来的程序大概是这样: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这个接口的,这个我晓得~

解决方案 »

  1.   

    ActionListener
    继承了这个接口
    类里需要实现接口中定义的方法。你说反了。应该是implements了接口就必须写actionPerformed方法。
      

  2.   

    public void actionPerformed(ActionEvent e){
        ...
      } 
    单独拿出来写
      

  3.   

    addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        ...
      }}); 
    这样写就不用implements ActionListener了
      

  4.   

    addActionListener(
        new ActionListener(){
      public void actionPerformed(ActionEvent e){    }
    //这是一个内部类,是一个实现了ActionListener接口并重写actionPerformed()                                        
    方法的实现器,而不是class XXX 重写actionPerformed(),
    }                                 
      

  5.   

    class XXX extends JFrame implements ActionListener 你指定了XXX实现了ActionListener 接口,但是实际上,你XXX并没有public void actionPerformed(ActionEvent e)方法,所以报错
    (你只是另外新建了一个匿名类中含有这个方法)