虽然我熟悉覆盖Swing的paintComponent(Graphics g)方法并绘制自定义形状,但我很难用一些反曲线绘制一个矩形(参见http://imgur.com/ih25X)。
有谁知道我如何创建Shape对象,让我画这个?
答案 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