2011-01-03 17 views
1

Ich habe ein kleines Problem. Ich versuche ein Programm zu schreiben, das eine Schachtel Buntstifte zeichnet. Ich möchte eine Methode haben, die ich von einem Hauptapplet aufrufen kann, das einen Zeichenstift zeichnet. Derzeit sieht mein Hauptprogramm wie folgt aus:Java Graphics Mehrere Klassen

package Crayons; 

import java.awt.Color; 
import java.awt.Graphics; 

import javax.swing.JApplet; 

@SuppressWarnings("serial") 
public class CrayonBox extends JApplet 
{ 
public void paint (Graphics page) 
{ 
    final int CENTER = 250; 
    final int SQUARE_SIZE = 31; 

    Crayon.drawCrayon(CENTER-5*SQUARE_SIZE, CENTER+5*SQUARE_SIZE, 9*SQUARE_SIZE,Color.red); 
    page.set 
} 
    } 

und mein Rahmenprogramm, das Verfahren hat den Zeichenstift ziehen sieht wie folgt aus:

package Crayons; 
import java.awt.Color; 
import java.awt.Polygon; 

@SuppressWarnings("serial") 
public class Crayon extends CrayonBox 
{ 


public static void drawCrayon (int x, int y, int height, Color color) 
{ 
    Polygon crayonTip = new Polygon(); 
    crayonTip.addPoint(x+15, y); 
    crayonTip.addPoint(x+46, y); 
    crayonTip.addPoint(x+62, y-62); 
    crayonTip.addPoint(x+62, y); 
    page.setColor(color); 
} 
    } 

i jetzt das zweite Programm müssen die poylgon ziehen i erstellt mit

page.drawPolygon(crayonTip); 

und die Farbe ändern

page.setColor(color); 
mit

aber es sagt, dass Seite nicht aufgelöst werden kann. Es kann also den Seitenbefehl nicht steuern. Was sehr nervig ist. Geht es darum herum?

Danke!

Antwort

2

Die paint Methode ist ein Graphics Objekt übergeben, um Zeichnung zu behandeln. Sie können dieses Objekt an alle Hilfsmethoden übergeben, indem Sie das Objekt page an diese Methoden übergeben. Ihre drawCrayon Methode wird dann:

public static void drawCrayon (int x, int y, int height, Color color, Graphics page) 
{ 
    ... 
    page.setColor(color); 
} 
+0

Vielen Dank! Wenn das klappt, werde ich super glücklich sein! – pogo2065