WindowListener是
interface强制您使用
override所有方法的方法,而WindowAdapter是实施方法的,
WindowListener您只需要
override处理您要处理的方法即可。
WindowListener是接口,意味着你不能实例化的
WindowListener,同时
WindowAdapter是具体的类,您可以使用
new*** 作符来实例化。
使用时
WindowAdapter,代码仅在您的类仅覆盖所需的方法的地方更干净。例如:WindowListener
窗口适配器public class CloseListener implements WindowListener { // im not interest on this event, but still need to override it @Override public void windowOpened(WindowEvent e) { } // im not interest on this event, but still need to override it @Override public void windowClosing(WindowEvent e) { } @Override public void windowClosed(WindowEvent e) { System.exit(0); } // im not interest on this event, but still need to override it @Override public void windowIconified(WindowEvent e) { } // im not interest on this event, but still need to override it @Override public void windowDeiconified(WindowEvent e) { }}
使用适配器时,代码更干净:
// at Jframe classaddWindowListener(new CloseListener());// reusable Close Listenerpublic class CloseListener extends WindowAdapter { @Override public void windowClosed(WindowEvent e) { System.exit(0); }}
要么
addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { System.exit(0); }});
所以我建议使用
WindowAdapter,但不必 遵循
。但是,两个API几乎相同,只是为了
WindowAdapter方便创建侦听器对象而存在。
编辑:
由于
WindowListener是
interface,因此您可以在Jframe子类中实现它。
public class MainWindow extends Jframe implements WindowListener { // this is ok}public class MainWindow extends Jframe, WindowAdapter { // this is not allow}
但是你不能用
WindowAdapter。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)