Swing应用程序的OnExit事件?

Nat*_*pos 16 java swing exit

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

updateZonas();
db.close();
Run Code Online (Sandbox Code Playgroud)

但是我怎么能这样做呢?

San*_*uri 33

Runtime.getRuntime().addShutdownHook(new Thread()
{
    @Override
    public void run()
    {
        updateZonas();
        db.close();
    }
});
Run Code Online (Sandbox Code Playgroud)

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

  • 这太低级了. (4认同)

Enr*_*que 28

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

    myframe.addWindowListener(new java.awt.event.WindowAdapter() {
        public void windowClosing(WindowEvent winEvt) {
            updateZonas();
            db.close();
            System.exit(0);
        }
    });
Run Code Online (Sandbox Code Playgroud)

  • 还有一个try/catch/finally围绕updateZonas和dbclose调用,以防出现问题.您可以让用户知道出现问题并确定该应用是否仍应退出. (4认同)

lin*_*159 7

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