内部框架JInternalFrame就如同一个窗口在另一个窗口内部,其特点如下:
  1) 必须把内部框架添加到一个容器中(通常为JDesktopPane),否则不显示;
  2) 不必调用show()或setVisible()方法,内部框架随所在的容器一起显示;
  3) 必须用setSize()或pack()或setBounds方法设置框架尺寸,否则尺寸为零,框架不能显示;
  4) 可以用setLocation()或setBounds( ) 方法设置内部框架在容器中的位置,缺省值为0,0,即容器的左上角;
  5) 象顶层JFrame一样,对内部框架添加组件也要加在它的内容面板上;
  6) 在内部框架中建立对话框,不能使用JDialog作为顶层窗口,必须用JOptionPane或JInternalFrame;
  7) 内部框架不能监听窗口事件,可以通过监听与窗口事件类似的内部框架(JInternalFrameEvent)处理内部框架窗口的操作。

  JFrame frame=new JFrame("InternalFrameDemo"); //实例化窗口
  JDesktopPane desktop=new JDesktopPane(); //实例化容器JDesktopPane
  MyInternalFrame myframe=new MyInternalFrame(); //实例化内部窗口
  desktop.add(myframe); //把内部窗口添加到容器中
  myframe.setSelected(true); //内部面板是可选择的
  frame.setContentPane(desktop); //把desktop设为frame的内容面板