你需要将 JInternalFrame 加入到 JFrame 中去。

解决方案 »

  1.   

    一般来讲,需要把JInternalFrame放到JDesktopPane里面。例如:
    ...//In the constructor of InternalFrameDemo, a JFrame subclass:
        desktop = new JDesktopPane();
        createFrame(); //Create first window
        setContentPane(desktop);
        ...
        //Make dragging a little faster but perhaps uglier.
        desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
    ...
    protected void createFrame() {
        MyInternalFrame frame = new MyInternalFrame();
        frame.setVisible(true); //necessary as of 1.3
        desktop.add(frame);
        try {
            frame.setSelected(true);
        } catch (java.beans.PropertyVetoException e) {}
    }...//In the constructor of MyInternalFrame, a JInternalFrame subclass:
    static int openFrameCount = 0;
    static final int xOffset = 30, yOffset = 30;public MyInternalFrame() {
        super("Document #" + (++openFrameCount),
              true, //resizable
              true, //closable
              true, //maximizable
              true);//iconifiable
        //...Create the GUI and put it in the window...
        //...Then set the window size or call pack...
        ...
        //Set the window's location.
        setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
    }