定制半透明的JPanel

本文介绍了在Java中创建半透明JPanel的过程,重点讨论了如何避免在使用graphics2D填充时出现的问题,以及尝试实现占满父容器的半透明效果。作者分享了在实现过程中遇到的挑战和解决方案,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

最近想模仿酷狗做个练习,路上困难重重啊。第一个困难是需要那些图标,于是就自学PS。再就是需要渐变色的进度条,于是就费了好大的功夫,重写了BasicProgressBarUI的paintDeterminate这个方法,好不容易实现了它。详情请看我的博客“实现渐变色的JProgressBar”.现在又遇到一个问题,就是需要半透明的JPanel。下面我将详细介绍解决这个问题中我遇到的弯路:

第一个是,请注意,我这个实现的是父容器内的JPanel半透明,这个JPanel并不是占满父容器的。其实将其中的参数调大,就能实现占满父容器的效果。而且,实现占满父容器的半透明的JPanel有很多个方法,我刚开始就是借鉴的那些方法,但是一直没有实现成功。

第一个是,使用graphics2D的fillxxx方法时,不要使用getBounds()方法的返回值做参数。因为graphics2D上下文已经指定了其x,y坐标,所以再使用getBounds()的返回值做参数,就会加倍这个x,y坐标。正确的用法是

graphics2d.fillRect(0, 0, getWidth(), getHeight());
第三个是,大多数component默认是不透明的。要使他们透明,必须自己设置。

下面先贴出来效果图,因为还没学会PS,所以其中需要图标的地方,我全部都是从酷狗界面上直接截了下来,等学会了,在自己做好放上:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值