在 Netbeans 中,自定义 windowClosingEvent 后我的程序不会退出。
我将数据库连接关闭指令添加到 windowClosingEvent 方法中,以确保如果用户关闭窗口而不是单击断开数据库按钮,可以断开我的数据库连接。
然后我手动添加“system.exit(0);”在 Netbeans 生成的 openingEvent 方法中。现在我的程序可以完成了。但我不明白为什么如果我添加 windowClosing 事件而不显式关闭程序,它无法自行完成。
最佳答案
如果您使用 WindowListener
接口(interface)或 WindowAdapter
并且您在其 windowClosing(e)
方法中查看原始实现,您将意识到他们没有为实现做任何事情:
//Invoked when a window is in the process of being closed. The close
//operation can be overridden at this point.
public void windowClosing(WindowEvent e) {}
因此,当您使用它时,您必须明确告诉他们关闭窗口时要做什么。如果不覆盖它,什么也不会发生。如果除了在关闭窗口时终止程序之外没有任何特殊要做的事情,通常我们会在重写的 windowClosing()
方法中编写 System.exit(0);
.
示例:
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
对于您的情况,您可能需要检查数据库连接是否已关闭,而不仅仅是编写 System.exit(0)
:
@Override
public void windowClosing(WindowEvent e) {
//Check if database connection is closed
//Close DB connection if open
System.exit(0);
}
关于java - 在 Netbeans 中自定义 windowClosing 事件后,我的 Java 程序无法结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36098456/