2012-06-07 34 views
0

如何設置一個動作命令以關閉javax.swing.JFrame的子類的自定義框架類的關閉事件?如何將操作命令設置爲窗口關閉事件?

這是當前的代碼:

this.addWindowListener(new WindowAdapter() { 
    @Override 
    public void windowClosing(WindowEvent e) { 
    // some stuff here 
    } 
}); 

即變爲在// some stuff here與標記quit按鈕共享的代碼。對於該按鈕,我已將操作命令設置爲"quit",並將偵聽器設置爲名爲NavigationHandler的外部類,其actionPerformed的案例爲"quit"。如果我可以將我的窗口關閉事件的動作命令設置爲"quit",我也可以爲窗口使用相同的偵聽器。

目前我有一個方法,我從這兩個網站調用,但感覺不乾淨。

+2

你並沒有像'覆蓋窗口關閉行爲'那麼'設置一個動作命令'。有關詳細信息,請參閱'WindowListener'。 –

+1

行..現在,看到你的編輯讓我問:你究竟想在這裏實現什麼?您希望爲最終用戶提供的應用程序功能是什麼? –

+0

'設置一個動作命令'對不起BNI,等於關閉JFrame,例如在鍵盤上的ESC鍵上? – mKorbel

回答

3

嘗試如下

要重複使用相當按鈕的ActionListener可以點擊的windowClosing相當按鈕。

單擊代碼調用doclick()方法的按鈕。 example

quitButton.doClick(); 
+0

請檢查編輯。 – missingfaktor

+1

你可以調用quitButton.doClick();在窗口關閉事件請參閱示例http://www.java2s.com/Tutorial/Java/0240__Swing/CallbuttondoClickmethodtosimulateaclickaction.htm –

+0

就是這樣!如果你用這個建議編輯你的答案,我會接受它。 – missingfaktor

1

你想添加一個WindowListener到JFrame,它可以讓你獲得關閉事件。

frame.addWindowListener(new MyWindowListener()); 
... 
public class MyWindowListener extends WindowAdapter { 
    public void windowClosing(WindowEvent e) { 
     // do something 
    } 
} 
+0

請檢查編輯。 – missingfaktor