2015-05-12 38 views
0

我有以下問題:我想創建一個新的BasicStroke並將其設置在Graphics2D對象上。這是我寫的這個問題的代碼:如何.setStroke(BasicStroke)?

BasicStroke stil = new BasicStroke(zo.getLinienbreite(), 
     BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER); 
    g2d.setStroke(stil); 

但旁邊的錯誤構造的BasicStroke(浮動,INT,INT)是未定義(這實際上是不是如果我閱讀文檔它說「類型Graphics2D中的setStroke(Stroke)方法不適用於參數(BasicStroke)」。

+0

什麼是'zo.getLinienbreite()',爲什麼你將它傳遞給BasicStroke構造函數? –

+0

2)你有沒有在這個班級附近的任何地方叫「BasicStroke」? –

+0

zo.getLinienbreite() 是一個對象zo的方法,它返回行的寬度,所以BasicStroke知道行的寬度應該是多少。 我在這堂課附近沒有其他BasicStroke,它實際上是我第一次也是唯一一次嘗試使用Strokes。 –

回答

0

其中一個BasicStroke constructors需要一個float和兩個int。我猜zo.getLinienbreite()不是浮動,所以你要麼必須明確地投它

BasicStroke stil = new BasicStroke((float)zo.getLinienbreite(), ... 

或改變它漂浮在zo的類。一旦完成,下一個錯誤將會消失。

乾杯,

+0

對不起,但zo.getLinienbreite()是一個浮點數。 Eclipse還告訴我BasicStroke(float,int,int)是未定義的。這就是我想知道的原因。即使我使用另一個構造函數 g2d.setStroke(stil); 不會工作。 –

+0

您是否在使用一些古怪的/舊的JDK版本?我們需要更多信息才能提供幫助。 –

-1

謝謝你的幫助。原來,我用com.sun.prism.BasicStroke而不是進口java.awt.BasicStroke。 再次感謝!