計(jì)算機(jī)二級(jí)JAVA基礎(chǔ):JAVA事件適配器

字號(hào):

為了進(jìn)行事件處理,需要?jiǎng)?chuàng)建實(shí)現(xiàn)Listener接121的類,而在某些Listener接口中,聲明了很多抽象方法,為了實(shí)現(xiàn)這些接口,需要做很多工作,一一實(shí)現(xiàn)這些方法。例如在MouseListener接口中,聲明了下述抽象方法:
    mouseClicked(MouseEvent)
    mousePressed(MouseEvent)
    mouseReleased(MouseEvent)
    mouseEntered(MouseEvent)
    mouseExited(MouseEvent)
    在實(shí)現(xiàn)MouseI。istener接口的類中,必須同時(shí)實(shí)現(xiàn)這五個(gè)方法。
    由于在某些情況下,實(shí)際關(guān)心的只是接口中的個(gè)別方法,因此為了編程方便,Java為那些聲明了多個(gè)方法的Listener接口提供了一個(gè)對(duì)應(yīng)的適配器(Adapter)類。
    在適配器類中實(shí)現(xiàn)了相應(yīng)接1:3中的全部方法,只是方法的內(nèi)容為空。例如MouseListener接口的形式如下:
    public interface MouseListener extends EventListener {
    public void mouseClicked(MouseEvent e);
    public void mousePressed(MouseEvent e);
    public void mouseReleased(MouseEvent e);
    public void mouseEntered(MouseEvent e);
    public void mouseExited(MouseEvent e);
    }
    與其對(duì)應(yīng)的適配器為MouseAdapter:
    public abstract class MouseAdapter implements MouseListener f
    public void mouseClicked(MouseEvent e){}
    public void mousePressed(MouseEvent e){}
    public void mouseReleased(MouseEvent e){)
    public void mouseEntered(MouseEvent e){}
    public void mouseExited(MouseEvent e){}
    }
    這樣,在創(chuàng)建新類時(shí),就可以不實(shí)現(xiàn)接口,而是只繼承某個(gè)適當(dāng)?shù)倪m配器,并且覆蓋所關(guān)心的事件處理方法。程序8—4就是一個(gè)使用適配器的例子。