![](https://i-blog.csdnimg.cn/blog_migrate/79453524d8c29991f2c9fbd927706d3e.jpeg)
可以看出,其实 ContentPane 是添加在 LayeredPane 上的一个控件。
而 LayeredPane 和 GlassPane 是直接添加在 RootPane 上的,
RootPane 直接添加在 JFrame 上。
其实你只要记住:
1、你现在不再需要去 getContentPane(),
2、ContentPane 默认是一个 JPanel ,
这两个结论就可以了……
我们可以在
JFrame
对象中添加
AWT
或者
Swing
组件。但是,
虽然它有
add
方法,却不能直接用于添加组件,否则会抛出异常
——
不信就试试。造成这个现象的原因只有一个解释:
JFrame
不是
一个容器,它只是一个框架。那么,应该怎么添加组件呢?
JFrame
有一个
Content Pane
,窗口能显示的所有组件都是添
加在这个
Content Pane
中。
JFrame
提供了两个方法:
getContentPane
和
setContentPane
就是用于获取和设置其
Content Pane
的。
对
JFrame
添加组件有两种方式:
1)
用
getContentPane()
方法获得
JFrame
的内容面板,
再对其加
入组件:
frame.getContentPane().add(childComponent)
2)
建立一个
Jpanel
或
JDesktopPane
之类的中间容器,把组件
添加到容器中,
用
setContentPane()
方法把该容器置为
JFrame
的内
容面板:
Jpanel contentPane=newJpanel();
……
//
把其它组件添加到
Jpanel
中
;
frame.setContentPane(contentPane);
//
把
contentPane
对象设置成为
frame
的内容面板
我们可以在
JFrame
对象中添加
AWT
或者
Swing
组件。但是,
虽然它有
add
方法,却不能直接用于添加组件,否则会抛出异常
——
不信就试试。造成这个现象的原因只有一个解释:
JFrame
不是
一个容器,它只是一个框架。那么,应该怎么添加组件呢?
JFrame
有一个
Content Pane
,窗口能显示的所有组件都是添
加在这个
Content Pane
中。
JFrame
提供了两个方法:
getContentPane
和
setContentPane
就是用于获取和设置其
Content Pane
的。
对
JFrame
添加组件有两种方式:
1)
用
getContentPane()
方法获得
JFrame
的内容面板,
再对其加
入组件:
frame.getContentPane().add(childComponent)
2)
建立一个
Jpanel
或
JDesktopPane
之类的中间容器,把组件
添加到容器中,
用
setContentPane()
方法把该容器置为
JFrame
的内
容面板:
Jpanel contentPane=newJpanel();
……
//
把其它组件添加到
Jpanel
中
;
frame.setContentPane(contentPane);
//
把
contentPane
对象设置成为
frame
的内容面板
我们可以在 JFrame 对象中添加 AWT 或者 Swing 组件。但是,虽然它有 add 方法,却不能直接用于添加组件,否则会抛出异常——不信就试试。造成这个现象的原因只有一个解释:JFrame 不是一个容器,它只是一个框架。那么,应该怎么添加组件呢? JFrame 有一个 Content Pane,窗口能显示的所有组件都是添加在这个 Content Pane 中。JFrame 提供了两个方法:getContentPane 和 setContentPane 就是用于获取和设置其 Content Pane 的。
对JFrame添加组件有两种方式:
1)用getContentPane()方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childComponent)
2)建立一个Jpanel或JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:
Jpanel contentPane=newJpanel(); ……//把其它组件添加到Jpanel中; frame.setContentPane(contentPane);
//把contentPane对象设置成为frame的内容面板