java label 透明,如何使java.awt.Label中的背景透明?

I used to do the transparent background with javax.swing.JLabel this way:

lbl.setBackground(new Color(0, 0, 0, 0));.

But it doesn't work with java.awt.Label. Is there any simple way to make the label transparent?

Update:

public class SplashBackground extends Panel {

private static final long serialVersionUID = 1L;

private Image image = null;

/**

* This is the default constructor

*/

public SplashBackground() {

super();

initialize();

}

/**

* This method initializes this

*

*/

private void initialize() {

image = Toolkit.getDefaultToolkit().createImage(getClass().getResource("/splash/splash.jpg"));

this.setLayout(null);

}

@Override

public void paint(Graphics g) {

super.paint(g);

if(image != null) {

g.drawImage(image, 0,0,this.getWidth(),this.getHeight(),this);

}

}

}

and

lbl= new Label();

lbl.setBackground(new Color(0, 0, 0, 0));

splashBackground = new SplashBackground();

splashBackground.add(appNameLabel, null);

解决方案

I can see why you do not want to load Swing, since it is for a splash. Sun/Oracle's own implementation of SplashScreen is AWT all the way.

Why not just use that existing class for your splash functionality?

As mentioned by camickr, see How to Create a Splash Screen for an example.

lR4O2.gif

Now that's what I'm talking about.

As to the labels, leave them out. Use FontMetrics or (better) TextLayout to determine the size/position of the text, then just paint it directly to the Image.

For an example of using the TextLayout class, see trashgod's answer to 'Java2D Graphics anti-aliased'.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值