Adapter就是对Listener的一个封装。因为像MouseListener这样的接口要实现好多个方法,有些不用的也要写上去,比较麻烦。于是JDK提供了一系列Adapter类。如果你的类只要响应有限的几个接口方法,并且也不需要再继承其他的类的话,可以从某个Adapter继承,然后只要实现你需要实现的方法就可以了。
举个例子:
class MyClass extends MouseAdapter{
....
    public void mousePressed(MouseEvent e){
        ....
    }
//其他的方法,比如mouseReleased等等,如果不需要就不用写了
....
}如果用接口的话,是类似的
class MyClass implements MouseListener{
....
    public void mousePressed(MouseEvent e){
        ......
    }
    public void mouseReleased(MouseEvent e){}//虽然这个方法用不上,但是还是要写上这个空方法。因为接口要求里面的每个方法都要实现
    //而且其他MouseListener里定义的方法也都要实现,这里略去了
}如果你的类既要响应事件,又需要从别的类继承,那就不能使用Adapter,只能老老实实的使用Listener了

解决方案 »

  1.   

    JDK的文档里面,在选package的frame里面可以选all classes,
    那样就可以找到所有你需要的类的位置了,
    然后可以根据类的说明文档再找到他所属的package。
      

  2.   

    那么是不是说每个Listener类都有一个相对应的Adatper类喽?
    比如:MouseListener类有MouseAdapter类,那么ActionListener类就有ActionAdapter类?是不是这么写的啊?我好像记得是WindowAdatper类啊。有没有可以对照的表格资料啊?