swing中Jpanel设置透明度

本文介绍了一种生成带有透明背景的电子签章的方法。通过调整Swing组件的透明属性并利用AWTUtilities类,成功实现了签章图片的背景透明化。


课题研究中应用到要生成透明背景的电子签章,所以通过网上搜寻资料以及自己整合最终实现了这项功能。实现图如下:



关键代码如下:

1.在生成panel时,设置为透明

      DrawPanel panel = new DrawPanel(); //DrawPanel继承swing中的Panel,具体实现不影响最后的结果
      panel.setBackground(Color.WHITE);     //先加个背景颜色
      panel.setOpaque(false); //把panel的背景色设为透明

一般这样设置后,会默认去除原来panel的背景色(如白色),但是在生成为图片得时候,会把背景补为灰色(可能是默认的背景色),所以没有达到效果。

       2.在上述步骤之上,再借助一个AWTUtilities类(自己下载好jar包),就可以实现上述功能了

DrawFrame frame = new DrawFrame(); //DrawFrame继承swing中的Frame,具体实现不影响最后的结果
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setUndecorated(true); // 设置窗口
无标题
com.sun.awt.AWTUtilities.setWindowOpaque(frame, false);// 设置窗体透明
//com.sun.awt.AWTUtilities.setWindowOpacity(frame, 0.3f);//
或者也可以自定义设置整个窗体的透明度(上一行代码等价于第二个参数设置为0f的情况)
      frame.setVisible(true);


上述代码即可实现panel的背景透明,保存后的图片也是透明的,遇到问题后可以向我询问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值