Ответ 1
Вам может быть интересно использовать WindowListener
. WindowListener
учебник.
Мне было интересно, есть ли способ, нажав на "X", чтобы программа выполнила некоторый код перед закрытием JFrame. Метод setDefaultCloseOperation()
принимает только целое число.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Вам может быть интересно использовать WindowListener
. WindowListener
учебник.
@Джеффри имеет хороший ответ, но вы должны подумать над тем, что вы пытаетесь сделать. Если вы действительно хотите что-то сделать после закрытия фрейма, то WindowListener - это путь. Однако, если вы ищете место для очистки и изящного завершения работы, то скорее всего вам понадобится shutdown hook. Используя WindowListener, код будет запускаться, как вы сказали, только нажатием кнопки "X". Но что делать, если пользователь запускает приложение на переднем плане терминала и убивает его с помощью Ctrl + C? Что делать, если пользователь убивает процесс из командной строки или из диспетчера задач?
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
int i=JOptionPane.showConfirmDialog(null, "Seguro que quiere salir?");
if(i==0)
System.exit(0);//cierra aplicacion
}
});