AffineTransform を実装しようとすると、このクラス キャスト例外が発生します。
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);
}
これは、カスタム シェイプ クラス (YingYang) にあります。
public class YingYang implements Shape
{
private Area yingYang = new Area();
private AffineTransform at = new AffineTransform();
...
}
呼び出しを行うたびに、これを描画パネルから、またはそれ自体のクラス内で YingYang にキャストしようとすると、クラス キャスト例外が発生します (戻り値の型を YingYang.
私はこのように電話をかけます:
YingYang newShape = (YingYang) shape.moveToAndRotate(newLoc1.x, newLoc1.y, theta);
これはエラーです:
java.lang.ClassCastException: java.awt.geom.Path2D$Double は Animation.YingYang にキャストできません
YingYang がシェイプ 1 を実装してからのアイデアは、これをキャストする必要はまったくないはずだと思うでしょう。重要な概念がありませんか?