Java - как предотвратить закрытие окна от фактического закрытия окна

У меня, похоже, обратная проблема для большинства людей. У меня есть следующий довольно стандартный код чтобы увидеть, хочет ли пользователь сделать некоторые сохранения перед закрытием окна:

  frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  frame.addWindowListener(new WindowAdapter() {
     public void windowClosing(WindowEvent ev) {
      boolean close = true;
         // check some files, asking if the user wants to save
         // YES and NO handle OK, but if the user hits Cancel on any file,
         //   I want to abort the close process     
         // So if any of them hit Cancel, I set "close" to false
      if (close) {
          frame.dispose();
          System.exit(0);
         }
       }            
});

Независимо от того, что я пытаюсь, окно всегда закрывается, когда я выхожу из windowClosing. Изменение WindowAdapter на WindowListener не имеет никакого значения. Что странно, так это что в документации прямо говорится: «Если программа явно не скрывает или не удаляет окно во время обработки этого события, операция закрытия окна будет отменена», но для меня это не работает. Есть ли другой способ обработки x на раме? TIA

50
задан Harry Johnston 1 May 2014 в 13:58
поделиться