我必须在我的JFrame上创建自定义组件,组件将显示该用户的存储状态,存储将以百分比形式显示。
我需要创建这样的东西:
我尝试使用自定义JLabel来创建标签,然后从左到右对该标签着色,但我无法创建云形状Label,然后根据变量值填充该标签。
我该怎么做?最好的方法是什么?
有一次我以为我应该使用一系列图片来显示用户存储的状态。
谢谢!
答案 0 :(得分:5)
如果您要完全复制该云,我认为您将需要使用图像掩码(示例here和here)。
该过程需要2张图片:
然后您的绘图过程,每次%存储更改时您必须执行的操作:
这需要一个小时左右的时间才能放在一起,所以我不打算为你做。如果您遇到问题(或者我不理解我刚刚描述的任何内容),那就去问问吧。
答案 1 :(得分:3)
您可以使用GlyphVector#getGlyphOutline()
获取Unicode字符的形状,例如☁\ u2601,并使用GradientPaint
填充它。
答案 2 :(得分:2)
您可以使用JLabel和从Icon派生的自定义实现的类来实现。
答案 3 :(得分:1)
这没有帮助吗? Java gradient label example
如果您理解(或可以翻译)葡萄牙语,那么还有this discussion with a solution at the end