我想不是这样吧,你应该反dispose();改成this.dispose();这样才对;

解决方案 »

  1.   

    真的吗?  
    好象不能this.dispose();吧
      

  2.   

    dialog.addWindowListener(new WindowAdapter() 
    { public void windowClosing(WindowEvent dialoge)             
    {
       dispose();
    }
    });
    改为:
    dialog.addWindowListener(new WindowAdapter() 
    { public void windowClosing(WindowEvent dialoge)             
    {
       dialogClose(dialoge);
    }
    });private dialogClose(WindowEvent  dialoge)
    {
      dialog.dispose();
    }
      

  3.   

    GJA106(中文字符) ,谢谢,但还是不行我想知道有哪些情况会导致关dialog时会把上级frame一同关闭的,说出来我就可以自己想办法解决了。
      

  4.   

    dialog.addWindowListener在那个类里面dispose就会把那个类关掉,因为这个相当于this.dispose();,估计你把这个放在上级frame的类里面了,所以把它关掉了。你应该设法调用dialog.dispose();
      

  5.   

    你相当于执行了
    dialog.addWindowListener(new WindowAdapter() 
      { public void windowClosing(WindowEventdialoge)
                {this.dispose();}
      });dispose是发给主窗口的。你的dialog能关,主要是因为主窗口关了才引起的。
    所以解决方法是将dispose信息发到dialog。
    dialog.addWindowListener(new WindowAdapter() 
      { public void windowClosing(WindowEventdialoge)
                {dialog.dispose();}
      });