我正在尝试向 JFrame
关闭操作添加一个监听器:
addWindowListener(new WindowListener() {
@Override
public void windowClosing(WindowEvent e) {
setVisible(false);
}
});
问题是 Eclipse 一直告诉我必须“添加未实现的方法”,我假设它是从 WindowListener
获取的。不过,我很困惑,如果您只需要重写一个方法,为什么还需要实现所有这些其他方法?如果我确实添加了所有其他方法,但不要在其中添加任何内容,例如
@Override
public void windowActivated(WindowEvent e) {}
这个方法的默认行为会丢失吗?或者只有当我在方法中写一些东西时它才会被覆盖?
最佳答案
如果你实现一个接口(interface),你必须实现所有的方法。这也适用于匿名类。
使用WindowAdapter
而不是实现 WindowListener
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
setVisible(false);
}
});
WindowAdapter
是一个使用空方法实现 WindowListener
的类,您可以只覆盖需要的方法。
PS: swing 中还有用于其他事件的其他适配器。例如。 MouseAdapter
, KeyAdapter
关于java - 您必须添加未实现的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34588663/