如果通过Windows任务栏强制关闭窗口 - >关

时间:2014-10-03 13:44:11

标签: java swing

如果点击java window closing强制使用windows taskbar -> close window,我如何检测到它?

Example

我发现要关闭的窗口会收到可以通过添加WINDOW_CLOSING来处理的windowListener事件。但在这种情况下,窗口无论如何都会被关闭。有什么方法可以阻止窗口关闭吗?

2 个答案:

答案 0 :(得分:1)

您可以将默认关闭操作设置为DO_NOTHING_ON_CLOSE,并要求用户进行确认。即使您想通过X按钮,组合键(即: ALT + F4 )或任何关闭窗口的方法关闭框架,这是一种非常常见的做法: / p>

JFrame frame = new JFrame("Welcome!");
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

frame.addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {
        int option = JOptionPane.showConfirmDialog(null, "Do you really want to exit?");
        if (option == JOptionPane.OK_OPTION) {
            e.getWindow().dispose();
        }
    }
});

答案 1 :(得分:0)

为了防止关闭窗口,您应该致电

 setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)

在您的JFrame实例上,然后通过windowListener实现替代关闭过程。