虽然我熟悉重写Swing的paintComponent(Graphics g)方法和绘制自定义形状,但我努力用一些反曲线绘制矩形(请参阅http://imgur.com/ih25X)。使用Swing绘制反曲线?
有谁知道我会如何去创建Shape对象,让我画这个?
虽然我熟悉重写Swing的paintComponent(Graphics g)方法和绘制自定义形状,但我努力用一些反曲线绘制矩形(请参阅http://imgur.com/ih25X)。使用Swing绘制反曲线?
有谁知道我会如何去创建Shape对象,让我画这个?
我相信GeneralPath是一种描述任意形状的典型方式。
在你的情况下,它看起来像你将不得不与quadTo
descibed lineTo
和两个(曲线)描述的两行,然后调用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
+1非常好的答案,阅读一下或两遍,并完全忘记它:P –
您也可以转换一个'Shape',如图所示[这里](http://stackoverflow.com /一个/230513分之5594424)。 – trashgod
这是一种廉价的解决方法,但我认为你最好的机会是只吸引你一些油漆程序进行图像。 – Aaron
也许使用直线,并允许通过点击和拖动来弯曲直线,或者如果您使用'draw(Graphics2D g2d,int x,int y)'方法创建自己的形状类,该方法不会使用直线绘制该形状在图形对象的给定点上) –