2015-05-12 14 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。 再次感谢!