Swing中的getContentPane()方法

本文介绍了J2SE5.0版本中Swing容器操作的改进,包括直接添加部件、设置布局管理和删除部件的功能,减少了使用ContentPane的需求,提升了开发效率。同时,通过实例演示了如何在JFrame中设置布局和添加部件,并指出了一些常见问题及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  摘录自http://www.java3z.com/cwbwebhome/article/article2/2359.html

 

   在过去的J2SE版本中,部件(components)不能直接添加到最高级(top level)的Swing容器,这些容器包括:JFrame, JDialog, JWindow, JApplet和JInternalFrame. 例如现在有一个JFrame的instance命名为aFrame。 我们要添加一个命名为aComponent的部件(比如一个JPanel)到JFrame里。以往我们需要调用JFrame的getContentPane()办法。如下:

    aFrame.getContentPane().add(aComponent) 

    在J2SE5.0中,我们可以直接添加部件到最高级的Swing容器,也可以直接在容器内设置布局管理(Layout Manager)和删除部件。这个变化允许我们可以省去调用getContentPane()而直接在容器内应用add(),setLayout()和remove()。然而,我们还是不能忽略了ContentPane,即使我们可能将不会再使用ContentPane来添加部件到容器。 


        先看一个我们以往在J2SE1.4及其以前的版本经常应用到的例子。我们要设置一个JFrame的布局管理而且添加一些部件到该JFrame。查看api关于JFrame的文件可以发现, JFrame从java.awt.Container继承了add()办法. 该add()是用来添加一个部件到JFrame容器. Container类里也包含setLayout()办法, 该setLayout()是用来设置继承者(比如上面的JFrame容器)的布局管理。

下面是一个简单的例子:

 



输出入下:


     这时我们注意到上面输出的JFrame的背景颜色并不是黑色而是白色, 也就是说上面的setBackground(Color.BLACK)编译后
该JFrame的背景颜色并没有被显示, 如果要让JFrame背景颜色为黑色--grid之间颜色为黑色还需要调用getContentPane(),

getContentPane().setBackground(Color.BLACK); 

如下面输出:

 

详细的新版本swing操作请到sun的java论坛里查询...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值