当用户选择"取消"?时保持Java应用程序打开

时间:2015-01-16 19:00:25

标签: java events dialog

我有一个非常基本的问题。

我在java中有以下WIndowClosing()事件。如果用户点击"取消",我想保持应用程序处于打开状态。我该怎么做?

应用程序在"取消"被选中。

这就是我所拥有的:

    public void windowClosing(WindowEvent evt) 
    {
        SAVE_MODE event = m_model.saveChanges();

        if(event == SAVE_MODE.YES)
        {
            saveChanges();
            System.exit(0);
        }
        else if(event == Common.SAVE_MODE.NO)
        {
            System.exit(0);
        }
        else
        {
            //Keep the application open -- how do I say that in code?
        }

    } 

请注意以下事项:

当ELSE子句为空时,应用程序仍会关闭。我不认为应该发生这种情况。

这应该花两个小时来解决。任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:1)

我认为可能只需要一种不同的方法。将主框架的默认关闭操作(在初始设置期间)设置为:

frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);

然后将您的windowClosing代码添加到“确定”退出,并在“取消”上不执行任何操作。

frame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent evt) {
        SAVE_MODE event = m_model.saveChanges();
        switch (event)
        {
            case YES:
                saveChanges();
                System.exit(0);
                break;
            case NO:
                System.exit(0);
                break;
            default:
                break;
        }
    }
  });

答案 1 :(得分:1)

(如果你想给我正确答案)

确保你正在调用[yourJFrame] .setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);