Событие OnExit для приложения Swing? - PullRequest
16 голосов
/ 18 марта 2010

Я разрабатываю простое приложение для управления операционной частью бизнеса с помощью Swing, но мне нужно, чтобы при выходе из приложения оно выполняло:

updateZonas();
db.close();

Но как я могу это сделать?

Ответы [ 3 ]

33 голосов
/ 18 марта 2010
Runtime.getRuntime().addShutdownHook(new Thread()
{
    @Override
    public void run()
    {
        updateZonas();
        db.close();
    }
});

Это работает для любого Java-приложения (Swing / AWT / Console)

28 голосов
/ 18 марта 2010

Вы используете JFrame? Если это так, вы можете попробовать это:

    myframe.addWindowListener(new java.awt.event.WindowAdapter() {
        public void windowClosing(WindowEvent winEvt) {
            updateZonas();
            db.close();
            System.exit(0);
        }
    });
7 голосов
/ 18 марта 2010

Добавьте WindowListener к вашему JFrame. Его метод windowClosing будет вызывать любой код, который вам нужен, затем System.exit(0) (или какой-либо другой код возврата).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...