因为你是在windowClosing事件里设置的.因此一定会消失.但并没有被收集,当用show之类的,还会重新出现.比较合适的办法就是建立一个frame,然后用它当作对话框的容器,这样就不会关闭了.

解决方案 »

  1.   

    可是如果不在windowClosing事件里设置,我也无法知道窗口触发的关闭事件啊!? 我也用过show了,可是仍然不能显示!建立frame 应该也是一样吧,如果还是在windowClosing事件里设置,应用程序还是会关闭该窗口的吧!?
      

  2.   

    just try:setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);protected void processWindowEvent(WindowEvent e) {
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
        int ifExit=JOptionPane.showConfirmDialog(this,"你确认要退出?","管理器",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);    if (ifExit==JOptionPane.YES_OPTION){
          System.exit(0);
        }
        else{
         
          return;//       想在这里返回,不做任何操作
        }
        }
        super.processWindowEvent(e);
      }