2016-04-30 159 views
1

有沒有辦法判斷一個對話已經在Java中被關閉,這裏是熊最小碼:如何檢查Dialog是否關閉?

JFrame jframe = new JFrame(); 
Dialog dialog = new Dialog(jframe); 
JButton jbutton = new JButton("Press to stuff"); 

jframe.add(jbutton); 

jbutton.addActionListener((e)->{ 

    methodStuff(dialog); 
    //stuff to do after dialog has been closed 
} 
在這個所謂的「methodStuff」

... 
dialog.dispose(); 
... 

如何檢查

而且某處那一行:「dialog.dispose();」發生了什麼?那可能嗎?

回答

0

添加窗口監聽和跟蹤這個

0

以簡單的方式窗口適配器,只保留一個布爾值在父類中,只是改變了對話狀態(true或false)。 EG-值更改爲真正對話框出現時,只是在的Dispose()前更改值回

1

您需要一個監聽器添加到對話框,把你想要的覆蓋方法中執行代碼...

例子:

JFrame jframe = new JFrame(); 
Dialog dialog = new Dialog(jframe); 
JButton jbutton = new JButton("Press to stuff"); 
dialog .addWindowListener(new java.awt.event.WindowAdapter() { 
    @Override 
    public void windowClosing(java.awt.event.WindowEvent windowEvent) { 
      //your code here!!! 
    } 
}); 
+0

太感謝你了,但是由於某些原因的windowClosing沒有工作,所以我找到了WindowAdapter javadoc,並決定使用windowClosed,它工作得很好 –