我正在尝试将Shape变成多边形。我的代码看起来是这样的:
是否可以在Java中将形状变成多边形?
类MyGraphicMethods扩展图形
{
...
...
公共无效fillShape(形状S)
{
g.fillPolygon( (多边形)S);
}
当运行
公共静态无效的主要(字串[] args){
形状S =新的Rectangle(新尺寸(10,100));
多边形P =(多边形)S;
}
我得到一个ClassCastException。 有人可以帮助我吗?
我正在尝试将Shape变成多边形。我的代码看起来是这样的:
是否可以在Java中将形状变成多边形?
类MyGraphicMethods扩展图形
{
...
...
公共无效fillShape(形状S)
{
g.fillPolygon( (多边形)S);
}
当运行
公共静态无效的主要(字串[] args){
形状S =新的Rectangle(新尺寸(10,100));
多边形P =(多边形)S;
}
我得到一个ClassCastException。 有人可以帮助我吗?
使用
extends Graphics2D
Graphics g = (Graphics2D) graphics;
g.fill(shape); // Or possibly fill(shape);
在Java的历史图形的一个点是由Graphics2D的延长,以及向后兼容的图形仍然保持, d在API中。但是人们总是可以将图形投射到Graphics2D。
因此,扩展图形和Graphics2D不是一个好主意。 这实际上是我第一次看到这个。
你不能将你的形状没有明确地回来了,但你可以使用路径迭代
Poligon p = ....
Shape s = p;
PathIterator iter = s.pathIterator();
我不想解释整个路径迭代的东西从形状重新创建它,它已经被解释诠释Using PathIterator to return all line segments that constrain an Area?
Polygon是否延伸Shape?如果是这样,矩形也扩展形状。您不能将矩形转换为多边形,即使是现实中的矩形,矩形也是四边形的多边形。你将需要通过你的结构的外观将矩形转换成多边形。希望这有助于。 –
对不起,问题解决了 - 我找到了一个解决方案! –
不错。请回答你自己的问题,分享给他人。谢谢 –