code: public void cascadeFrames() {
          restoreFrames();
          int x = 0;
          int y = 0;
          JInternalFrame allFrames[] = getAllFrames();
  
          manager.setNormalSize();
          int frameHeight =
                  getBounds().height - 5 - allFrames.length * FRAME_OFFSET;
          int frameWidth =
                  getBounds().width - 5 - allFrames.length * FRAME_OFFSET;
          for (int i = allFrames.length - 1; i >= 0; i--) {
              allFrames[i].setSize(frameWidth, frameHeight);
              allFrames[i].setLocation(x, y);
              x = x + FRAME_OFFSET;
              y = y + FRAME_OFFSET;
          }
      }
docs: Cascade all internal frames, un-iconfying any minimized first