Window 关闭监听器并设置默认关闭操作
Window Close Listener And setDefaultCloseOperation
我对 swing window 侦听器和默认关闭操作之间的关系有疑问。当我处理以下情况时出现问题:
我为 JFrame
添加了一个 window 侦听器(WindowAdapter
用于侦听器),并覆盖了 windowClosing
函数:如果用户关闭 window,会弹出对话框确认,如果用户选择CANCEL
选项,则直接return。但是,当我测试代码并在关闭 window 时选择 CANCEL
时,框架 window 仍然关闭(或者可能只是不可见,因为 Java 图标仍在任务栏)。
然后我用 DO_NOTHING_ON_CLOSE
添加默认关闭选项,同样的测试行为,框架 window 没有关闭,这是我所期望的。
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
然后我把默认的关闭选项改成EXIT_ON_CLOSE
,同样的测试行为,框架window直接关闭了(这次Java图标也消失了)。
这让我很困惑。这是否意味着 window 侦听器只能定义 window 关闭时要做什么,而不能确定是否关闭 window?或者我需要覆盖其他功能?
window监听器只是一个监听器。它不会影响默认关闭操作,除非您实际更改 windowClosing() 代码中的默认关闭操作。
我使用:
frame.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
作为创建框架时的默认值。然后在 windowClosing(...)
方法中,如果用户确认关闭框架我更改默认值:
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
查看 Closing an Application 了解更多信息和更完整的示例代码。
我对 swing window 侦听器和默认关闭操作之间的关系有疑问。当我处理以下情况时出现问题:
我为 JFrame
添加了一个 window 侦听器(WindowAdapter
用于侦听器),并覆盖了 windowClosing
函数:如果用户关闭 window,会弹出对话框确认,如果用户选择CANCEL
选项,则直接return。但是,当我测试代码并在关闭 window 时选择 CANCEL
时,框架 window 仍然关闭(或者可能只是不可见,因为 Java 图标仍在任务栏)。
然后我用 DO_NOTHING_ON_CLOSE
添加默认关闭选项,同样的测试行为,框架 window 没有关闭,这是我所期望的。
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
然后我把默认的关闭选项改成EXIT_ON_CLOSE
,同样的测试行为,框架window直接关闭了(这次Java图标也消失了)。
这让我很困惑。这是否意味着 window 侦听器只能定义 window 关闭时要做什么,而不能确定是否关闭 window?或者我需要覆盖其他功能?
window监听器只是一个监听器。它不会影响默认关闭操作,除非您实际更改 windowClosing() 代码中的默认关闭操作。
我使用:
frame.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
作为创建框架时的默认值。然后在 windowClosing(...)
方法中,如果用户确认关闭框架我更改默认值:
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
查看 Closing an Application 了解更多信息和更完整的示例代码。