Я не уверен, какова ситуация на Mac, но в Windows вы получаете обратный вызов windowClosing () от кнопки закрытия; Alt-F4
; и если вы закроете приложение через диспетчер задач. Вы не получите обратный вызов, если вы используете диспетчер задач, чтобы убить процесс, но я бы не ожидал, что в любом случае.
Вы не забыли вызвать setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
в своем экземпляре JFrame, не так ли?