JFrame界面层次结构

     学到swing界面的时候,难免会遇到设置背景图片的情况,那么如何添加就略是复杂了。原本以为是直接在JFrame界面直接添加个图片就好,可是却会发现这根本行不通。之后才知道JFrame添加图片有几个步骤,一般是在LayeredPane最底层添加一个带图片的标签,然后将ContentPane设置为透明,并将上面的部件也设置为透明,那么一个背景图片就设置好了。以下就是一小段背景图片的设置代码:

      

    	实例化一个背景图片
        ImageIcon bjt= new ImageIcon("image/bjt.jpg");
    	实例化一个带背景图片的标签
        JLabel lbjt=new JLabel(bjt);
    	//设置标签位置大小(大小与图片一致)
    	lbjt.setBounds(0, 0, bjt.getIconWidth(), bjt.getIconHeight());
        //在LayeredPane最底层上添加一个带图片的标签
    	frame.getLayeredPane().add(lbjt,new Integer(Integer.MIN_VALUE));
    //	JPanel contentPanel = (JPanel) frame.getContentPane();
    //  contentPanel.setOpaque(false);
    	((JPanel)frame.getContentPane()).setOpaque(false);//此句与上两句意义相同

 

      那么LayeredPane、ContentPane又是什么东西呢?实际上,在JFrame上已经有4个层次了,分别是 RootPane、LayeredPane、ContentPane、GlassPane,而其中 GlassPane 默认是透明。以下就是就是其视觉层次图:

 

       在其中的ContentPane,实际上也就是我们在JFrame上添加组件的地方。而在 JDK1.4时,在JFrame上添加部件是一定要用getContentPane().add(……)  来添加部件。

      再看另一张图:

 

       从这里可以看出contentpane实际上是添加在layeredpane上的一个控件,而layeredpane与classpane是直接添加在rootpane上的,而rootpane是直接添加在JFrame上的。

      由此也就能清楚的理解JFrame的结构层次了。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值