我正在使用该paintComponent()
方法在 JPanel 上绘制几个形状。最后一点是向顶部添加透明的白色渐变。
我有这个:
我想得到这样的东西:
我尝试使用 GradientPaint 方法,但它似乎对我来说根本无法正常工作。当我打电话时g.setPaint(new GradientPaint(...))
,它似乎根本无法覆盖现有像素。
如果有人想看看我在做什么,可以在这个Pastebin 上找到代码的 SSCCE 。
如果将这些添加为 的最后几行,似乎会产生效果paintComponent(Graphics)
。
// now we have set a paint, DO SOMETHING WITH IT!
g.fillRect(0, 0, getWidth(), getHeight());
AlphaComposite
在绘制渐变之前尝试应用
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
您可以尝试的另一件事是在渐变中使用具有 alpha 值的颜色...
LinearGradientPaint lgp = new LinearGradientPaint(
startPoint, endPoint, new float[]{...},
new Color[] {
new Color(255, 255, 255, 0),
new Color(255, 255, 255, 128),
new Color(255, 255, 255, 0),
});