在关闭一个窗体时,要求弹出确认框,选择是,否和取消。代码是这样写的
监听器代码如下: private class jfAddUsrListener implements WindowListener{
public void windowClosed(WindowEvent e){
System.out.println("Closed");
}
public void windowClosing(WindowEvent e){

 int saveResult = JOptionPane.showConfirmDialog(null
 , "exit with save ?", "message", JOptionPane.YES_NO_CANCEL_OPTION);
 if(saveResult == JOptionPane.YES_OPTION){
 System.out.println("YES");
 return ;
 }
 if(saveResult == JOptionPane.NO_OPTION){
 System.out.println("NO");
e.getWindow().setVisible(false);
((Window)e.getComponent()).dispose();
newUser.getInstance().release();
 return ;
 }
 if(saveResult == JOptionPane.CANCEL_OPTION){
 System.out.println("CANCEL");    //当点击取消时,                           return ;                                        //想不做任何修改,返回原窗体,但显然这样实现是不对的
 }请问,这个代码问题出在哪里?谢谢

解决方案 »

  1.   


        public void catalogframe_window_close(WindowEvent e) {
            int i = JOptionPane.showOptionDialog(this, "请问您要离开本系统吗?", "温馨提示",
                                                 JOptionPane.YES_NO_OPTION,
                                                 JOptionPane.WARNING_MESSAGE, null,
                                                 null, null);
            //showOptionDialog是有返回值的。LZ看看JDK吧。我这把代码给你敲了
            if (i == JOptionPane.YES_OPTION) {
                this.setDefaultCloseOperation(CatalogFrame.EXIT_ON_CLOSE);
            } else {
                this.setDefaultCloseOperation(CatalogFrame.DO_NOTHING_ON_CLOSE);
            }
        }