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

标签 java swing

如果通过单击 windows taskbar -> close window 强制关闭 java 窗口,我如何检测?

Example

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

最佳答案

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

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();
        }
    }
});

关于java - 如果通过 Windows 任务栏强制关闭窗口则阻止窗口关闭 -> 关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26180131/

相关文章:

java - 用 Java 自动化 UI 测试

java - 将 JFrame 设置为完全不活动,直到关闭另一个 Jframe

java - 从 Controller 更改组合框值

java - 在 lambda 表达式中使用非最终循环变量

java - JavaFX 中 TableView 的排序行为

java - 设置媒体文件在程序中的位置路径

java - 从实体类填充 gui 类中的 jlist

标识为主类的 Java 主要参数

java - 如何获取数据层的ServletContext对象?

java - 使用 android studio 时 apk 在设备上持续崩溃