JFrame 的结构层次图

现在我们再来看另一张图,从模型的角度来看 JFrame 的层次:

JFrame 的结构层次图_第1张图片

可以看出,其实 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的内容面板 

你可能感兴趣的:(Java学习笔记总结)