16

我正在开发一个简单的应用程序来使用 Swing 管理业务的运营部分,但我需要在应用程序退出时执行以下操作:

updateZonas();
db.close();

但是我该怎么做呢?

4

3 回答 3

35
Runtime.getRuntime().addShutdownHook(new Thread()
{
    @Override
    public void run()
    {
        updateZonas();
        db.close();
    }
});

这适用于任何 Java 应用程序(Swing/AWT/Console)

于 2010-03-18T12:13:14.443 回答
30

你在使用 JFrame 吗?如果是这样,你可以试试这个:

    myframe.addWindowListener(new java.awt.event.WindowAdapter() {
        public void windowClosing(WindowEvent winEvt) {
            updateZonas();
            db.close();
            System.exit(0);
        }
    });
于 2010-03-18T01:52:46.727 回答
7

将一个添加WindowListener到您的 JFrame。它的windowClosing方法会调用你需要的任何代码,然后System.exit(0)(或其他一些返回代码)。

于 2010-03-18T01:52:42.177 回答