我再也一个记事本的程序。如果文档有改动,在点叉子关闭时候,就弹出是否保存的提示框。选是,保存并退出,选否直接退出。这都没问题,问题是选取消后,窗体就隐藏了,用setVisible(true)也没用,这是为什么,请高手帮忙解决以下,谢谢!

解决方案 »

  1.   

    奥,好的
    这是我的windowClosing()监听方法,它调用下面的exit()方法,windowClosing()中就这一句 private void exit() {
    if(changeStar == "*")
    {
    int q = JOptionPane.showConfirmDialog(this, fileName+"文件的内容 以改变。\n想保存文件吗?", "记事本",  JOptionPane.INFORMATION_MESSAGE);
    if(q == 0)
    {
    saveFile();
    System.exit(0);
    } else if(q == 1)
    {
    System.exit(0);
    } else
    {
     this.show();
    }

    } else
    System.exit(0);
    }
      

  2.   

    你要先jframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);这样你点关闭按钮的时候它就不会自己关闭,你才能用exit()方法控制它是否关闭。
      

  3.   

    我觉得主要的问题是你最后的那一行System.exit(0);不管你选确定还是取消,他都执行,他直接把jvm关了,这个程序就结束了,当然就show不回来了
      

  4.   

    对,jframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    就是这句话闹得!
    最后的那一行System.exit(0);上面有一个else//是如果没有改动文本内容时,直接退出用的
    呵呵,谢谢高手指点