加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Swing中的getContentPane()方法

(2012-09-19 09:11:46)
标签:

杂谈

分类: java,servlet
  在过去的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容器)的布局管理。

下面是一个简单的例子:

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

下面是一个简单的例子:
http://s5/middle/6d3fcc7e4ca03f4ae98e4&690

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

getContentPane().setBackground(Color.BLACK);
如下面输出:


   

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有