Frame frame = new Frame(); // 事件源
// 事件: WindowEvent
WindowListener wl = new WindowListener() { // 事件监听器
@Override // 事件处理器
public void windowActivated(WindowEvent e) {}
@Override // 事件处理器
public void windowClosed(WindowEvent e) {}
@Override // 事件处理器
public void windowClosing(WindowEvent e) {
f.dispose();
}
@Override // 事件处理器
public void windowDeactivated(WindowEvent e) {}
@Override // 事件处理器
public void windowDeiconified(WindowEvent e) {}
@Override // 事件处理器
public void windowIconified(WindowEvent e) {}
@Override // 事件处理器
public void windowOpened(WindowEvent e) {}
};
// 注册事件监听器
frame.addWindowListener(wl);
为了简化编程,java将大量事件监听器简化成了事件适配器,即事件适配器对事件监听器进行空实现,也就是说实现的每个方法不写任何代码。
Frame frame = new Frame(); // 事件源
// 事件: WindowEvent
WindowAdapter wa = new WindowAdapter() { // 事件适配器本身实现了事件监听器
@Override // 事件处理器
public void windowClosing(WindowEvent e) {
f.dispose();
}
};
// 注册事件监听器
frame.addWindowListener(wa);
这样显然简洁了很多。
注意:除了只有一个方法的监听器,其它监听器都有适配器。
原文:https://www.cnblogs.com/matroleox/p/12820014.html