在Java MDI应用中,想限制一个JInternalFrame窗体只创建一次,如果已经创建,就不能再创建了。子窗口使用singleton模式,但子窗口无法显示出来,很奇怪。
public class JMyInternalFrame
{
   private static JMyInternalFrame jFrame=new JMyInternalFrame();
   private JMyInternalFrame(){}
   public static JMyInternalFrame GetFrame()
   {
     return jFrame;
   }
}

解决方案 »

  1.   


    这个internal frame要加到desktop里,  JDesktop desktop = new JDesktop();
    desktop.set(internalFrame)...
      

  2.   

    楼上说的对
    我做了一个是自己判断的
    JInternalFrame[] frames;
    frames = desk.getAllFrames();//将已经创建的窗体都放到一个数组里
    indexFrame = exist(frame, frames); //调用exist方法,判断点选的窗体是否存在
    if (indexFrame > -1) {//大于-1表示已经存在
       //窗体存在的操作
    }
    else{//窗体不存在
       //建立新窗体
    }