2013-03-16 71 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