如何防止窗口关闭?

时间:2013-03-23 23:40:34

标签: java swing joptionpane windowlistener

首先抱歉我的英语不好。

嗨,我正在尝试使用带有YES_NO_OPTION的confirmDialog。 我想要的是,当我关闭一个框架时,会显示一个confimDialog,询问我是否要关闭。

如果我按是everyThing最多关闭,如果我按否则确认对话将消失

但问题是即使我按下没有按钮关闭这是我的代码:

final JFrame frame = new JFrame("2D Game");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1600,600);
frame.setResizable(false);

    private void continuerButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_continuerButtonActionPerformed
        int level=getlevel();
        System.out.println(niveau);
        if(niveau == 1)
        {
            this.dispose();
            frame.add(new Board());
            frame.setVisible(true);
            frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) 
            {
                doExitOption();
            }
            });
        }
    }

这是doExitOption方法:

 public void doExitOption()
    {
        int option=JOptionPane.showConfirmDialog(null, "do you want to quit the game",    "Warnning",JOptionPane.YES_NO_OPTION);
            if(option == JOptionPane.YES_OPTION)
            {
                frame.dispose();
            }
    }

3 个答案:

答案 0 :(得分:3)

您需要更改JFrame的默认关闭操作,以便您对dispose的调用是唯一要求处理该窗口的调用:

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

答案 1 :(得分:3)

Closing an Application。它可以为您管理默认的关闭操作。

答案 2 :(得分:0)

将JFrame的默认关闭更改为DO_NOTHING_ON_CLOSE