如何使用形状和渐变创建自定义Java Swing GUI组件

Asg*_*har 3 java user-interface swing

我必须在我的JFrame上创建一个自定义组件,Component将显示该用户的存储状态,存储将以百分比形式显示.

我需要创建这样的东西:

图片

我尝试了一个自定义JLabel来创建一个标签,然后从左到右着色该标签,但我无法创建云形状Label,然后根据变量值填充该标签.

我应该怎么做以及最好的方法是什么?

有一次我以为我应该使用一系列图像来显示用户存储的状态.

谢谢!

Cha*_*win 5

如果您要完全复制该云,我认为您将需要使用图像掩码(此处此处的示例).

该过程需要2张图片:

  • 云轮廓(蓝色部分)
  • 图像蒙版是云的形状,外部可能是黑色,内部是白色

然后你的绘图过程,每次%存储更改时你必须做的是:

  1. 创建一个新的缓冲图像
  2. 然后以您想要的样式绘制绿色填充条(例如,如此图像中的倾斜)
  3. 将图像蒙版复制到此上
  4. 将此新图像绘制到屏幕上,并按照此处所述应用蒙版
  5. 将云轮廓图像绘制到屏幕上

你要花一个小时左右的时间才能拼凑起来,所以我不打算为你做这件事.有一个去,如果你遇到问题(或者我不理解我刚才描述的任何内容),那么请具体询问.