2014-03-19 52 views
3

我正在嘗試查看我的窗口偵聽器是否正在工作。我希望在調用windowClosed方法中的dispose之前,在控制檯中輸出消息,但它不會打印任何內容。我不確定我是否做錯了 - 有沒有辦法檢查?檢查我的窗口偵聽器是否正在工作

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總是被解僱。

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 

但重寫的方法應該是這樣的後框架,

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

在這裏你不能使用dispose()方法,因爲這種方法被稱爲:
windowClosed會當您使用被解僱處置。 如果調用dispose()方法,那麼這將使windowClosed()方法無限地執行。

相關問題