2014-03-19 5 views
3

Я пытаюсь проверить, работает ли мой оконный прослушиватель. Я надеялся распечатать сообщение в консоли, прежде чем я вызову dispose в методе windowClosed, но ничего не печатает. Я не уверен, что я делаю что-то не так - есть ли способ проверить?Проверка работоспособности моего оконного администратора

public class MyClass extends JFrame { 
    . . . 
      this.addWindowListener(new WindowAdapter() { 

      @Override 
      public void windowClosed(WindowEvent e) { 
       System.out.println("I'm in the listener"); 
       dispose(); 
      } 
     }); 

    . . . 
} 
+1

Это должно работать нормально. – Salah

ответ

4

Я думаю, вы хотите windowClosing, который вызывается, когда пользователь пытается закрыть окно. windowClosed называется после Окно было расположено, поэтому нет смысла пытаться избавиться от него.

+0

Вижу, я этого не знал! Я изменил его на windowClosing, и он работал нормально. Спасибо! – user3281466

4

windowClosing всегда уволен.
windowClosed будет срабатывать при использовании:

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 

Но переопределяется метод должен быть таким,

  @Override 
      public void windowClosed(WindowEvent e) { 
       System.out.println("I'm in the listener"); 
       System.exit(0); 
      } 
     }); 

Здесь вы не можете использовать dispose() метод, так как этот метод будет вызываться после того, как кадр расположены. Если вызывается метод dispose(), то это сделает метод windowClosed() бесконечно.

Смежные вопросы