Java:即使" No"点击

时间:2014-07-23 08:38:31

标签: java swing jframe joptionpane windowlistener

你知道为什么我的JFrame关闭了,即使我点击了" No"按钮?这是我的代码:

jframe.addWindowListener(new java.awt.event.WindowAdapter() {
        @Override
        public void windowClosing(java.awt.event.WindowEvent windowEvent) {
            int confirm = JOptionPane.showOptionDialog(jframe,
                    "Sei sicuro di voler chiudere EconomatoUTL?",
                    "Attenzione!", JOptionPane.YES_NO_OPTION,
                    JOptionPane.QUESTION_MESSAGE, null, null, null);

            if (confirm == JOptionPane.YES_OPTION) {

                Runtime runtime = Runtime.getRuntime();
                try {
                    runtime.exec("cmd /C basexserver.bat stop");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                System.exit(1);
            }
        }
    });

我在几个论坛上发现它并说它有效...... 哪里出错?

2 个答案:

答案 0 :(得分:3)

检查是否设置了默认关闭操作,如

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

即使你还没有,你的框架只会在点击" No"时隐藏(默认关闭操作为HIDE_ON_CLOSE)。选项。

而是将其添加为默认关闭操作。

jframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
如果用户选择"否"这将使您的框架保持现有状态。选项。

答案 1 :(得分:1)

您已进入windowClosing事件,但未取消。所以窗口将会关闭。

已经有一段时间了,但您可以使用windowEvent取消活动。