Как я могу остановить закрытие приложения Java - PullRequest
3 голосов
/ 12 декабря 2011

У меня есть приложение на рабочем столе Java, и я хотел бы, чтобы пользователь выбрал «Выход», чтобы открыть всплывающее окно, которое спрашивает его, хочет ли он продолжить закрытие приложения или нет.Я знаю, как заставить окно подняться и прочитать ответ пользователя, но мне нужно знать, как я могу остановить закрытие приложения (что-то вроде System.close().cancel()).

Возможно ли это?

Ответы [ 4 ]

7 голосов
/ 12 декабря 2011

Да, это возможно.

После вызова setDefaultCloseOperation(DO_NOTHING_ON_CLOSE), добавьте WindowListener или WindowAdapter и в методе windowClosing(WindowEvent) выведите JOptionPane.

int result = JOptionPane.showConfirmDialog(frame, "Exit the application?");
if (result==JOptionPane.OK_OPTION) {
    System.exit(0);     
}
1 голос
/ 31 декабря 2015

После установки setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); на JFrame или JDialog добавьте прослушиватель Windows:

addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent arg0) {
            int result = JOptionPane.showConfirmDialog((Component) null, "Do u really want to exit ?!",
                    "Confirmation", JOptionPane.YES_NO_OPTION);
            if (result == 0) {
                System.exit(0);
            } else {

            }
        }
    });
1 голос
/ 12 декабря 2011

Вы можете добавить окно слушателя.(Примечание: WindowAdapter в упаковке java.awt.event)

myframe.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
        // do something
    }
});
0 голосов
/ 12 декабря 2011

На вашем JFrame вы должны установить defaultCloseOperation:

JFrame.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);

Затем установите операцию закрытия вашего всплывающего окна на EXIT_ON_CLOSE.

...