Pane窗格,Panel面板,getContentPane()

  Pane和Panel的含义是不一样的:

  Pane,窗格

  Panel,面板

  pane是Java中的一个控件,是不具备包含其他控件的功能的;而panel虽然也是一个控件,但是它还有一个身份就是布局,它可以管理其他的控件。

  Pane指窗口中可以独立滚动的子部分,如果你在Word中使用屏幕分割的功能,那么分割出的两个独立部分就是Pane。

Pane窗格,Panel面板,getContentPane()

  而Panel是用来分组控件和其它对象的,典型的例子是工具条中用来分组按钮的区域(我用红色方框圈起来的部分,当然,下图中不只有一个Panel)。

Pane窗格,Panel面板,getContentPane()

  关于setContentPane()和getContentPane()的应用

  我们可以在 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=new JPanel();

  ……//把其它组件添加到Jpanel中;

  frame.setContentPane(contentPane);

  //把contentPane对象设置成为frame的内容面板

Pane窗格,Panel面板,getContentPane()

上一篇:初入 Spring.net


下一篇:pre