当试图实现AffineTransform时,我已经得到这个类抛出异常。Java类抛出异常java.awt.geom.Path2D.Double
电话的AffineTransform:
public Shape moveToAndRotate(double x, double y, double theta)
{
double cx = getBounds2D().getCenterX();
double cy = getBounds2D().getCenterY();
at.translate(cx, cy);
at.translate(x, y);
at.rotate(Math.toRadians(theta));
at.translate(-cx, -cy);
return at.createTransformedShape(yingYang);
}
这是驻留在一个自定义形状类(营养土)。
public class YingYang implements Shape
{
private Area yingYang = new Area();
private AffineTransform at = new AffineTransform();
...
}
当过我打个电话,我得到一类转换异常,当我尝试投无论是从拉丝面板或类是自内这回鹰扬(如果我改变返回类型鹰扬。
我打这个电话是这样的:
YingYang newShape = (YingYang) shape.moveToAndRotate(newLoc1.x, newLoc1.y, theta);
这是错误:
java.lang.ClassCastException:java.awt.geom.Path2D $双人不能转换到阿尼mation.YingYang
鹰扬以来任何想法实现形状人会认为我不应该在所有施放此。我错过了一个关键概念吗?
构造你忽略了非常重要的位,像at'的'定义和变量'shape'。你需要展示足够的代码才能看到你在做什么。 –
YingYang实现Shape ...但是'createTransformedShape'返回一个Path2D - 也就是说,它不是YingYang实例,而是一个全新的形状对象,与YingYang无关,这就是为什么你不能这样做。 – Ash
请注意错误是什么:您显然正在尝试投射[Path2D.Double](http://docs.oracle.com/javase/7/docs/api/java/awt/geom/Path2D.Double.html )到一个鹰阳,而不是一个到鹰阳的Path2D。 – lealand