JFrame调用getContentPane常见问题.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验说明

⚫一般,对于中的来说,老版本需要先调用一次来获得内容容器后再调用

来往里面添加组件。后来新版本去掉了这个限制,像一样可以直接。

老版本:

新版本:

⚫但是,如果不先调用,而直接调某一些方法时,有可能失效。

比如用对象直接调,产生不了效果,而必须先获取到对象,

再用对象调。

importjavax.swing.*;

importjava.awt.*;

publicclassTestContentPaneextendsJFrame

{TestContentPane(){

super(测试一下);

//setBackground(Color.BLACK);//用这句设置背景颜色可能会失败

getContentPane().setBackground(Color.BLACK);//用这句可以成功

setLayout(newGridLayout(6,6,2,2));

for(inti=0;i36;i++){

JPaneljPanel=newJPanel();

jPanel.setBackground(newColor((int)(Math.random()*167772215)));

add(jPanel);

}

setSize(400,400);

setVisible(true);

}

publicstaticvoidmain(String[]args)

{newTestContentPane();

}

}

⚫运行效果图

本文实验来自于此参考资料

⚫参见:《Swing中的getContentPane()方法》

全录

在过去的J2SE版本中,部件(components)不能直接添加到(toplevel)的Swing容器,这些容器包括:

JFrame,JDialog,JWindow,JApplet和JInternalFrame.例如现在有一个JFrame的instance命名为aFrame。我

们要添加一个命名为aComponent的部件(比如一个JPanel)到JFrame里。以往我们需要调用JFrame的

getContentPane()办法。如下:

aFrame.getContentPane().add(aComponent)

在中,我们可以直接添加部件到的容器,也可以直接在容器内设置布局管理(

)和删除部件。这个变化允许我们可以省去调用而直接在容器内应用

和。然而,我们还是不能忽略了,即使我们可能将不会再使用

来添加部件到容器。

先看一个我们以往在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);

如下面输出:

文档评论(0)

182****0328 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档