2016-05-01 5 views
0

Ich versuche, eine Form in ein Polygon zu verwandeln. Mein Code sieht dies so etwas wie:
Ist es möglich, eine Form in ein Polygon in Java zu verwandeln?

Klasse MyGraphicMethods erweitert Graphics
{
...
...
public void fillShape (Form S)
{
g.fillPolygon ((Polygon) S); }

Wenn I

public static void main (String [] args) {
Form S = new Rechteck (neue Dimension (10, 100)) durchgeführt;
Polygon P = (Polygon) S;
}

Ich bekomme eine Classcast. Kann mir jemand helfen?

+0

Ist Polygon Form erweitert? Wenn ja, erweitert Rectangle auch Shape. Du kannst Rectangle nicht in Polygon werfen, auch nicht in Wirklichkeit, Rectangle ist ein Polygon mit vier Seiten. Sie müssen Rectangle nach dem Aussehen Ihrer Struktur in Polygon konvertieren. Hofft diese Hilfe. –

+0

Sorry, Problem gelöst-Ich habe eine Lösung gefunden! –

+1

Schön. Bitte beantworte deine eigene Frage, um sie anderen mitzuteilen. Danke –

Antwort

0

Verwenden

extends Graphics2D 

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

an einem Punkt in Java Geschichte Graphics wurde von Graphics2D erweitert, und für die abwärts~~POS=TRUNC Graphics remaine d in der API. Allerdings kann man Grafiken immer auf Graphics2D übertragen.

Daher ist es keine gute Idee, Graphics oder Graphics2D zu erweitern. Dies ist tatsächlich das erste Mal, dass ich das sehe.

0

Sie Ihre Form nicht konvertieren kann nicht explizit zurück, aber man kann es aus Form neu erstellen Iterator Pfad

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

PathIterator iter = s.pathIterator(); 

ich möchte nicht den ganzen Weg Iterator Sachen zu erklären, ist es bereits ausgeführt worden ist int Using PathIterator to return all line segments that constrain an Area?

Verwandte Themen