JFrame的setBackGround与getContentPane().setBackground区别

当你创建一个JFrame的时候JFrame jf new JFrame();

在构造方法JFrame()内部会给jf默认添加一个rootPane

所以执行完JFrame jf new JFrame();这句话之后jf上面已经添加了一个默认的rootpanel

然后你再调用jf.add(panel) 这个时候,panelrootPane是平级的

可以测试一下,分别执行

jf.setBackground(Color.blue);

getContentPane().setBackground(Color.black);

 (实际上上面一句并不能改变界面的背景色,下面一句才可以,因为rootPanejf给挡住了,上面一句是改变了jf的背景色,但是你眼睛看到的并不是jf,其实是rootPane.)

   

另外

jf.getContentPane()==jf.getRootPane().getContentPane()

上面的比较返回的true

与jf.add(panel)相比,调用jf.getContentPane().add(panel) 其实是把panel添加到rootPane上面了 这个时候panelrootPane就不是平级的了

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值