2D-Grafik Graphics2D object in ein anderes Zeichnen

JavaN3rd

Mitglied
Hallo zusammen

Gibt es eine schlaue Möglichkeit ein Graphics2D objekt in ein anderes an einer bestimmten Position zu zeichnen?

Vielen Dank für die Hilfe
 
Ein Graphics Objekt ist im Prinzip ein Pinsel.
Wenn du mit einem Pinsel auf einen anderen Pinsel malst, dann ist das vermutlich nicht das was du haben wolltest.
 
Also das ist so, ich habe ein GameObject das ein Graphics2D objekt enthält, dies kann ein Bild sein aber auch irgendeine Zeichnung (Shapes).
Dieses GameObject möchte ich nun an einer gewissen Position in ein JPanel zeichnen.
 
Nochmal, ein Graphics Objekt enthält keine Daten. Es ist ein Pinsel, keine Leinwand. Der Pinsel (Graphics2D) malt auf eine Leinwand (Bildschirm, Drucker, Bild,...), du kannst aber nicht vom Pinsel erwarten das er sich dabei jede Bewegung merkt.
Was du machen möchtest kann so nicht funktionieren.

Also das ist so, ich habe ein GameObject das ein Graphics2D objekt enthält
Das hört sich schon vom Prinzip falsch an. Man besitzt (zumindest bei normalen GUI Applikationen) kein Graphics Objekt Objekt, man bekommt eins übergeben wenn es Zeit ist neu zu Zeichnen (paintComponent in JComponent).
 
Zuletzt bearbeitet:
Ok, ich verstehe, was für ein Objekt sollte ich dann dem GameObjekt anhängen, das sowohl Zeichnungen also Shapes enthalten soll oder aber auch Bilder. ?
 
Also das ist so, ich habe ein GameObject das ein Graphics2D objekt enthält, dies kann ein Bild sein aber auch irgendeine Zeichnung (Shapes).
Ein Graphics Objekt kann kein Bild oder eine Zeichnung sein. Solch ein Objekt kann ein Bild oder eine Shape zeichnen. s. Wildcard's Post.
Woher hat denn das GameObjekt das Graphics Objekt - mal abgesehen, dass sie keines benötigen?
Dieses GameObject möchte ich nun an einer gewissen Position in ein JPanel zeichnen.
In der
Code:
paintComponent(Graphics g)
muss das JPanel sein Graphics Objekt oder eine Kopie davon an die GameObjekte übergeben, damit diese sich mit dem Graphics Objekt des JPanels auf dieses zeichnen können.
Java:
GamePanel extends JPanel {
...
public void paintComponent(Graphics g) {
     super.paintComponent(g);
     gameObjekt.paint(g);
     ...
}
 

Zurück
Oben