我是JavaFX的新手(而且老实说,相当粗略的Java),所以我非常感谢JavaFX应用程序中正确设计清理任务的一些帮助。
我的应用程序显示一个输入表单,它将每个表单的数据作为一个单独的行写入DB2数据库。当程序开始时,它首先获取数据库连接,并且甚至懒得绘制GUI直到它成功为止;如果数据库已关闭,则收集数据无需添加到数据库中。假设已成功获取连接,应用程序将运行整个白班,代码只需整天重用原始连接。每次完成表单时,用户单击“添加”按钮,并重复使用相同的Statement来创建Insert语句,然后提交Insert。到目前为止一切都很好。
我的问题涉及何时/如何关闭数据库连接。从逻辑上讲,当用户点击应用程序上的“关闭”按钮时,我想我想这样做。此时,我将执行disconnectFromDatabase()方法并让应用程序正常关闭。
我很难弄清楚何时/如何检测到已按下关闭按钮。我以前使用Swing并使用setDefaultOnClose来检测用户是否正在关闭应用程序,但我没有找到Java FX中的等效项。
有人可以描述我应该检测到用户按下了关闭按钮的位置/方式吗?我猜我需要写一个监听器来检测这个动作,但我真的不知道该怎么做。
如果有必要,我可以发布程序,但是如果你能用几句话描述我需要做什么,我可以自己找出我需要的精确代码。
感谢您提出另一篇文章,但它并没有真正回答我的问题。我正在寻找一种方法来确定GUI上的“关闭”按钮已被按下,这样我就可以添加自己的清理代码,除了Java所做的标准事情外,还应该执行该代码。事实证明,Java已经关闭了我的数据库连接作为其默认行为的一部分,所以我根本不需要编写任何代码。但是,我知道如果我需要自动完成Java所做的清理,那么覆盖stop()方法似乎是一个很好的方法。
我现在还不清楚如何解决我的问题,因为我已经解决了这个问题。我离开后,我也不确定如何找到自己的帖子。 (我只是通过选择JavaFX下的所有主题,然后仅查看最新的20多个单元,找到回到这里的方式。是否有任何方法可以找到我自己的帖子,无论其年龄如何?)
答案 0 :(得分:2)
覆盖onStop
- (让我在Android中思考一下)在Application
类中
@Override
public void stop() throws Exception {
// clean up goes here
//super.stop(); reason for comment this line, @fabian's comment
}