我使用paintComponent()
方法在JPanel上绘制了几个形状。最后一步是在顶部添加透明的白色渐变。
我有这个:
我希望得到这样的东西:
我尝试使用GradientPaint方法,但它似乎对我来说根本不适用。当我拨打g.setPaint(new GradientPaint(...))
时,它似乎无法覆盖现有的像素。
如果有人想看看我在做什么,可以在this Pastebin找到代码的SSCCE。
答案 0 :(得分:3)
如果将这些作为paintComponent(Graphics)
的最后一行添加,似乎会产生效果。
// now we have set a paint, DO SOMETHING WITH IT!
g.fillRect(0, 0, getWidth(), getHeight());
答案 1 :(得分:2)
在绘制渐变之前尝试应用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),
});