當試圖實現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