java组件的透明问题

  记得有不少人质疑java透明方面的能力,也有很多人到处找怎么让java做出半透明效果,今天闲来无事写来晒晒。
  为了创建透明组件,首先需要重写组件的paintComponent(Graphics)函数, @Override public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.setComposite(AlphaComposite.getInstance(AlphaC omposite.SRC_OVER, 0.3f)); //需要渲染的代码 g2d.setComposite(AlphaComposite.getInstance(AlphaC omposite.SRC_OVER, 1.0f)); } AlphaComposite 类中的 getInstance(int rule, float alpha)方法的第一个参数为合成规则,这个可以查找这个类的API中的静态变量,第二个参数为float型的alpha值,取值为0-1。
  需要注意的是千万要记得在需要透明处理的代码后面将alpha改回1也就是不透明,要不然就悲剧了,那些渲染优先级低于这个组件的部分就全变成透明处理的了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值