2013-01-04 95 views
1

雖然我熟悉重寫Swing的paintComponent(Graphics g)方法和繪製自定義形狀,但我努力用一些反曲線繪製矩形(請參閱http://imgur.com/ih25X)。使用Swing繪製反曲線?

有誰知道我會如何去創建Shape對象,讓我畫這個?

+0

這是一種廉價的解決方法,但我認爲你最好的機會是隻吸引你一些油漆程序進行圖像。 – Aaron

+0

也許使用直線,並允許通過點擊和拖動來彎曲直線,或者如果您使用'draw(Graphics2D g2d,int x,int y)'方法創建自己的形狀類,該方法不會使用直線繪製該形狀在圖形對象的給定點上) –

回答

3

我相信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

+0

+1非常好的答案,閱讀一下或兩遍,並完全忘記它:P –

+0

您也可以轉換一個'Shape',如圖所示[這裏](http://stackoverflow.com /一個/230513分之5594424)。 – trashgod