2011-11-02 80 views
-2

我需要幫助編寫GUI應用程序:基本的Java GUI程序

•當試圖關閉窗口時,用戶應通過 對話框要求確認他們確實希望終止應用程序,通過 提供ay(是)或n(否)指示。如果輸入'y',則應用程序 應該立即終止,如果輸入'n',它應該保持可見。 我幾乎沒有這樣做,但我不能讓窗口在點擊JOptionPane.showConfirmDialog()之後保持可見狀態。

•當用戶通過點擊相應的圖標最小化窗口,消息 將會出現對話框說「最小化窗口」

•當用戶還原窗口,一個消息對話框應該 出現說「恢復窗戶」。 這對我很有幫助。

+0

你有沒有去教程,特別是覆蓋[ComponentListener](http://download.oracle.com/javase/tutorial/uiswing/events/componentlistener.html)和[WindowListener](http:// download。 oracle.com/javase/tutorial/uiswing/events/windowlistener.html)?如果是這樣,當你嘗試做他們推薦的東西時,什麼都行不通?你能告訴我們你的代碼嗎? –

+0

你在問很多問題。嘗試隔離它們並儘可能具體。 – hellectronic

回答

2

對於問題的第一部分:您可以將WindowListener添加到包含以下應用程序的頂層JFrame

addWindowListener(new WindowAdapter() { 
    public void windowClosing(WindowEvent e) { 
     doExit(); // Will not return if user clicks yes. 
     super.windowClosing(e); 
    } 
}); 

...然後實現doExit()如下:

private void doExit() { 
    int yesNo = JOptionPane.showConfirmDialog(this, "Are you sure you wish to exit?", "Confirm", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); 

    if (yesNo == JOptionPane.YES_OPTION) { 
     System.exit(0); 
    } 
} 

另外,在初始化應用程序時,您需要添加以下方法調用:

mainAppFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);