因为ButtonJPanel类没有实现ActionListener接口,或者说,并不是ButtonJPanel类实现的ActionListener接口,当然不能写implements ActionListener。实现这个接口的是一个匿名内部类,这个匿名内部类是不需要(也不可能)声明它implements ActionListner的。

解决方案 »

  1.   

    这样说吧,如果你加上implements语句,那么你就要在ButtonJPanel类的级别定义一个类成员方法:public void actionPerformed(ActionEvent e){},否则是无法编译通过的。估计你是看到了某个例子中的另一种实现方法:类自己implements ActionListener,添加actionPerformed方法,然后button.addActionListener(this);还不明白的话再好好看看基础吧,接口和内部类这一块。
      

  2.   

    同意sean_gao(大胃)...
    <Effective Java>里面也有说
      

  3.   

    一个类implements一个接口,说明你需要在这个类里实现那个接口的方法,而这里你并没有在ButtonJPanel 里实现AcionListener的任何方法,
    这里的匿名类则相当于做成了一个AcionListener的实现类.在ButtonJPanel 里用到的是这个实现类,并没有用过这个接口