Java 如何在两条线之间绘制阴影区域

Java 如何在两条线之间绘制阴影区域,java,swing,Java,Swing,如何在特定颜色的两条线之间绘制阴影区域 我正在使用Graphics2D.drawLine()来绘制线条,并在线条之间有一个半透明的着色区域。您的想法是错误的。如果要绘制面积,请这样做。之后渲染区域顶部的线条。 可以使用Graphics.drawPolygon渲染区域 有两种方法可以获得半透明效果。最简单的方法(对于纯色)是使用alpha(新颜色(0xaarrggb,true))创建颜色实例,并将其用于绘图。 另一种方法是将Graphics2D.setComposite与AlphaComposit

如何在特定颜色的两条线之间绘制阴影区域


我正在使用
Graphics2D.drawLine()
来绘制线条,并在线条之间有一个半透明的着色区域。

您的想法是错误的。如果要绘制面积,请这样做。之后渲染区域顶部的线条。 可以使用Graphics.drawPolygon渲染区域

有两种方法可以获得半透明效果。最简单的方法(对于纯色)是使用alpha(新颜色(0xaarrggb,true))创建颜色实例,并将其用于绘图。
另一种方法是将Graphics2D.setComposite与AlphaComposite实例一起使用(该方法也会影响不使用颜色的元素的绘制,例如drawImage)。

这在

诸如此类的事:

public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D)g;

    Polygon p = new Polygon();
    p.addPoint(0,100);
    p.addPoint(100,100);
    p.addPoint(100,200);
    p.addPoint(100,200);

    GradientPaint gp = new GradientPaint(0.0f, 100.0f, Color.red,
             200.0f, 200.0f, Color.green, true);
    g2.setPaint(gp);
    g2.fill(p);
}
对于透明度,您需要包括alpha通道的设置

g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
          alpha));

有关工作示例,请参见

我不知道如何操作,但您不能使用比用于绘制线条的颜色更亮的颜色,通过执行类似于您选择的颜色的操作来绘制另一条作为阴影的线条。brighter().brighter或darder().darker(),你更喜欢哪一种。+1另请参见使用半透明渐变颜料的相关内容。