Java Swing 的窗口中,使用addWindowListener()添加窗口事件监听器,仅仅是得到窗口事件的通知,并不能阻止窗口的动作(如隐藏),要想阻止窗口的默认动作,可以使用如下方式:
public class AFrame extends JFrame{
public AFrame() {
this.setSize(400, 300);
this.setVisible(true);
//激活窗口事件
this.enableEvents(AWTEvent.WINDOW_EVENT_MASK);
}
//重写这个方法
@Override
protected void processWindowEvent(WindowEvent e) {
if (e.getID() == WindowEvent.WINDOW_CLOSING)
return; //直接返回,阻止默认动作,阻止窗口关闭
super.processWindowEvent(e); //该语句会执行窗口事件的默认动作(如:隐藏)
}
public static void main(String[] args) {
new AFrame();
}
}
----OK----