使用Swing绘制反曲线?

时间:2013-01-04 16:14:18

标签: java swing graphics shape

虽然我熟悉覆盖Swing的paintComponent(Graphics g)方法并绘制自定义形状,但我很难用一些反曲线绘制一个矩形(参见http://imgur.com/ih25X)。

有谁知道我如何创建Shape对象,让我画这个?

1 个答案:

答案 0 :(得分:3)

我相信GeneralPath是描述任意形状的典型方式。

在您的情况下,看起来您将使用lineTo描述两行和使用quadTo描述的两行(曲线),然后调用closePath()来表示闭合多边形,类似于(只是在这里选择方便的坐标,你可能想要更大的东西):

GeneralPath polygon = 
    new GeneralPath(GeneralPath.WIND_EVEN_ODD, 4);
polygon.moveTo(2.0, 1.0);
polygon.lineTo(2.0, 5.0);
polygon.quadTo(1.25, 4.75, 1.0, 4.0);
polygon.lineTo(1.0, 2.0);
polygon.quadTo(1.75, 1.75, 2.0, 1.0);
polygon.closePath();
g.draw(polygon);

另外,请查看此tutorial on GeneralPath