2011-11-02 82 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);