|
内部框架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的内容面板
|