2016-05-01 1 views
0

シェイプをポリゴンにしようとしています。
Javaで図形をポリゴンにすることはできますか?

クラスMyGraphicMethodsグラフィック
{
...
...
ます。public void FILLSHAPE(シェイプS)
{
g.fillPolygonを(拡張:私のコードは次のようなものが見えます(ポリゴン)S);
}

Iは

パブリック静的無効メイン(文字列[] args){
形状S =新しいRectangle(新次元(10、100))を実行します。
ポリゴンP =(ポリゴン)S;
}

ClassCastExceptionが発生します。 誰かが私を助けることができますか?

+0

ポリゴンは形状を拡張していますか?そうであれば、RectangleはShapeも拡張します。現実のものでもRectangleをPolygonにキャストすることはできません。Rectangleは四辺Polygonです。構造の見た目でRectangleをPolygonに変換する必要があります。この助けを願っています。 –

+0

申し訳ありません、問題は解決しました - 私は解決策を見つけました! –

+1

ニース。あなた自身の質問に答えて、他の人と共有してください。どうも –

答えて

0

使用

extends Graphics2D 

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

1点でJavaの歴史グラフィックスのGraphics2Dによって拡張され、下位互換性のグラフィックスremaineためた中APIのd。しかし、常にGraphics2DにGraphicsをキャストできます。

したがって、GraphicsやGraphics2Dを拡張することはお勧めできません。 これは実際に私がこれを見るのは初めてです。

0

あなたが明示的に戻っていない、あなたの形状を変換することはできませんが、あなたは

Poligon p = .... 
Shape s = p; 

PathIterator iter = s.pathIterator(); 

iはパス全体-イテレータのものを説明したくないパスイテレータを使用して形状からそれを再作成することができ、それは既に説明されていますint型Using PathIterator to return all line segments that constrain an Area?

関連する問題