我正在尝试将一个形状制作成多边形。我的代码如下所示:
类MyGraphicMethods扩展Graphics
{
。。。
。。。
公共空心填充形状(形状S)
{
g.fillPolygon((多边形)S);
}
当我运行时
public static void main(String[]args){
形状S=新矩形(新尺寸(10100))
多边形P=(多边形)S
}
我得到一个ClassCastException。有人能帮我吗?
使用
extends Graphics2D
Graphics2D g = (Graphics2D) graphics;
g.fill(shape); // Or possibly fill(shape);
在java的历史中,Graphics2D曾经扩展过Graphics,为了向后兼容,Graphics保留在API中。然而,人们总是可以将Graphics转换为Graphics2D。
因此,扩展Graphics和Graphics2D都不是一个好主意。事实上,这是我第一次看到这个。
您不能不显式地转换回您的形状,但您可以使用路径迭代器从形状重新创建它
Poligon p = ....
Shape s = p;
PathIterator iter = s.pathIterator();
我不想解释整个路径迭代器的东西,它已经在使用PathIterator返回约束Area的所有线段?