目录
一、背景
在事件处理模型中,实现一个监听器需要重写对应的监听器接口的所有方法,而有的监听器接口定义了很多方法。而如果你只需要其中一个的话,就会有累赘了。
比如说WindowListener接口有7个方法,而你可能仅仅只需要一个,那么代码会是这样:
二、引入事件适配器
事件适配器:实现某一特定接口的所有方法,只不过方法全都重写为空。定义适配器是为了简化事件处理的代码量。这时只需要继承一个事件类,覆盖其中需要的事件代码就行了。
以上面的WindowListener接口为例,若引入事件适配器WindowAdapter:
//给窗口增加关闭功能
WindowListener w = new WindowAdapter() {public void windowClosing(WindowEvent e) {if (user agrees )System.exit(0);}
};
frame.addWindowListener(w);
代码还能进一步简化:
myframe.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {if (user agrees)System.exit(0);}
});
三、JDK中部分适配器
事件适配器均在java.awt.event中,常用的适配器如下:
Event-adapter class | Implements interface |
---|---|
ComponentAdapter | ComponentListener |
ContainerAdapter | ContainerListener |
FocusAdapter | FocusListener |
KeyAdapter | KeyListener |
MouseAdapter | MouseListener |
MouseMotionAdapter | MouseMotionListener |
WindowAdapter | WindowListene |
end
欢迎关注个人公众号“鸡翅编程”,平常会把笔记汇总成推送更新~