2013-03-16 75 views
2

我正在使用windowClosing在关闭特定JFrame之前进行确认。关闭JFrame之前显示提示

在关闭之前,我得到一个确认对话框,但即使点击NO按钮,问题也会关闭。请帮忙吗?

addWindowListener(new WindowAdapter() { 

    @Override 
    public void windowClosing(WindowEvent we) 
    { 
    String ObjButtons[] = {"Yes","No"}; 
    int PromptResult = JOptionPane.showOptionDialog(null, 
     "Are you sure you want to exit?", "Online Examination System", 
     JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, 
     ObjButtons,ObjButtons[1]); 
    if(PromptResult==0) 
    { 
     System.exit(0);   
    } 
    } 
}); 
+0

什么是你的JFrame的默认关闭操作设置为?它是否被设置为:'jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);'? – 2013-03-16 12:05:03

+3

'JOptionPane.showOptionDialog(null,“你确定要退出?”,“在线考试系统”,JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null,ObjButtons,ObjButtons [1]);':不通过' null“作为第一个参数。传递对话框的父框架,否则您的选项窗格对话框可能会落在您的框架后面。 – 2013-03-16 12:09:38

+0

请将答案标记为“已接受”。 – 2018-02-27 16:52:55

回答

2

你可以,如果它被设置为EXIT_ON_CLOSE你的JFrame的默认的关闭选项设置为DISPOSE_ON_CLOSE。在这种情况下,它会解决您的查询如下所示: -

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
11

什么是您的JFrame的默认关闭操作设置为?你需要确保它被设置为:jFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

+0

@ user2125727 [例如](http://stackoverflow.com/a/9228595/714968) – mKorbel 2013-03-16 12:11:19

2

把这个上框架intialization

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
10

试试这个

this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
addWindowListener(new WindowAdapter() { 
    @Override 
    public void windowClosing(WindowEvent we) 
    { 
     String ObjButtons[] = {"Yes","No"}; 
     int PromptResult = JOptionPane.showOptionDialog(null,"Are you sure you want to exit?","Online Examination System",JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null,ObjButtons,ObjButtons[1]); 
     if(PromptResult==JOptionPane.YES_OPTION) 
     { 
      System.exit(0); 
     } 
    } 
}); 
+0

我建议你编辑该代码示例,以便它的格式正确。这是不可读的。 – 2013-03-16 12:14:18

+0

这应该是被接受的答案。 – 2017-07-02 06:22:34