Swing中的几种面板解析



JRootPane:根面板,在建立JFrame时就默认加进来了,覆盖除边框之外的整个表面,其余面板均在它之上,由它管理,默认可见不透明。

JLayeredPane:建立在JRootPane面板上,其上有菜单栏JMenuBar和内容面板containPane,菜单栏JMenuBar在JLayeredPane面板的顶部。对于层面板上的多层,只能把某种容器(比如JPanel)设置为内容面板层,层面板中的其他层都不能设置。使层面板可见用setOpaque()。

containPane:内容面板,向窗体中添加的所有组件都是添加到containPane中的,如果组件未添加到此层,就不会显示了。jframe.getContenPane.add(jpanel)相当于jframe.add(jpanel),其中getContentPane是返回内容面板的引用,默认可见不透明,我们看到的就是内容面板的内容。

内容面板默认在层面板的-30000层,向层面板添加组件要添加在这一层。

层面板中只有内容面板是不透明的,所以给层面板添加背景色相当于就是添加内容面板的背景色。

JPanel jp = (JPanel) this.getContentPane();
this.setContentPane(jp);
jp.setOpaque(false);
ImageIcon img = new ImageIcon("image/login.jpg");
JLabel lb = new JLabel(img);
lb.setBounds(0, 0, this.getWidth() - 5, this.getHeight() - 10);
this.getLayeredPane().add(lb, new Integer(Integer.MIN_VALUE));

glassPane:该面板位于最上层,默认透明不可见。若将某一容器(比如JPanel)设为玻璃面板,它仍是不可见的,但它不是透明的,这取决于该容器是否是透明的、

//获取玻璃面板
JPanel jp = (JPanel)getGlassPane();

jp.setVisible(true);







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值