2016-03-14 111 views
0

我最近想从我已有的多边形(javafx.scene.shape.Polygon)创建区域(com.sun.javafx.geom.Area)。多边形本身可以工作,但是该区域表示我应该“将多边形投射到PathIterator”。但是,当我这样做,异常显示出来的类不能被强制转换成的PathIterator (Ĵava.lang.ClassCastException: javafx.scene.shape.Polygon不能转换为com.sun.javafx.geom.PathIteratorjavafx将多边形转换为区域

我现在的问题是:根据javadoc的,区域的构造-class应该能够使用一个Shape对象,该多边形是(它扩展了Shape)。 如何正确初始化区域对象?

+2

为什么要创建一个区域?它甚至不会显示在api中,再加上它是在阳光下的包装。您绝对不应该将Polygon投射到PathIterator。你能链接区域的javadoc吗? – matt

+0

'com.sun.javafx.geom.Shape'!='javafx.scene.shape.Shape'。 – fabian

+0

'com.sun.javafx'类,例如'com.sun.javafx.geom.Area'是用于JavaFX实现的不受支持的内部API。不推荐使用通用应用程序代码。 – jewelsea

回答

0

我现在的问题是:根据javadoc,Area-class的构造函数应该能够接受一个Shape对象,该Polygon是(它扩展了Shape)。我如何正确初始化Area对象?

这不是您的解决方案吗?如果你说的是真的,你应该简单地能够像这样创建它:

Area area = new Area(polygon); 
+1

错误:构造函数需要类型为“com.sun.javafx.geom.Shape”的参数,但“多边形”扩展了“javafx.scene.shape.Shape”。 – fabian

+0

这就是我相信的,但它没有奏效,这就是为什么我感到困惑并写下这个问题。答案在上面 – Yato