2016-05-01 47 views
0

我正在尝试将Shape变成多边形。我的代码看起来是这样的:
是否可以在Java中将形状变成多边形?

类MyGraphicMethods扩展图形
{
...
...
公共无效fillShape(形状S)
{
g.fillPolygon( (多边形)S);
}

当运行

公共静态无效的主要(字串[] args){
形状S =新的Rectangle(新尺寸(10,100));
多边形P =(多边形)S;
}

我得到一个ClassCastException。 有人可以帮助我吗?

+0

Polygon是否延伸Shape?如果是这样,矩形也扩展形状。您不能将矩形转换为多边形,即使是现实中的矩形,矩形也是四边形的多边形。你将需要通过你的结构的外观将矩形转换成多边形。希望这有助于。 –

+0

对不起,问题解决了 - 我找到了一个解决方案! –

+1

不错。请回答你自己的问题,分享给他人。谢谢 –

回答

0

使用

extends Graphics2D 

Graphics g = (Graphics2D) graphics; 
g.fill(shape); // Or possibly fill(shape); 

在Java的历史图形的一个点是由Graphics2D的延长,以及向后兼容的图形仍然保持, d在API中。但是人们总是可以将图形投射到Graphics2D。

因此,扩展图形和Graphics2D不是一个好主意。 这实际上是我第一次看到这个。

相关问题