Problem mit Parameter von paint(Graphics g)

Kalom

Mitglied
Hallo,

ich habe da ein kleines Problem mit dem Parameter von paint(Graphics g). Am besten fange ich damit an, zu beschrieben was ich machen möchte 🙂.

Also, ich habe eine Klasse namens Welt. Die bietet verschiedene Methoden an. Im Konstruktor erstelle ich ein neues JFrame. Nun möchte ich mit der Methode "public void paint(Graphics g)" der Klasse Welt, etwas auf dieses JFrame zeichnen, z.B. ein Bild.

Hier die komplette Methode:

Java:
public void paint(Graphics g)
{
  BufferedImage _image;
  try {                
     _image = ImageIO.read(new File("einBild.bmp"));
     g.drawImage(_image,100,100,_welt); //_welt ist mein JFrame
  } catch (IOException ex) {
     System.out.println("Fehler beim Laden: " + ex);
  }
			
}

Wenn ich nun ein neues Exemplar der Klasse Welt erzeuge, dann die Methode paint(Graphics g) aufrufe, muss ich ein Parameter übergeben. (Verwende BlueJ)

Aber was hat es denn nun mit diesem Parameter auf sich?! Ich habe anfangs etwas in diese Richtung versucht:
Java:
Graphics g = new Graphics();
Funktioniert aber nicht, weil Graphics abstrakt ist 🙁

Danach habe ich mir die API von Graphics angeschaut (Graphics (Java 2 Platform SE v1.4.2))

Werde daraus aber auch nicht wirklich schlau, wie ich nun mit dieser Klasse umzugehen habe.
Die Tutorials, welche ich im Internet gefunden haben, sehen ähnlich wie mein Code aus... .


Kann mich bitte Jemand aufklären 😉 !

Vielen Dank !:rtfm:
 
Die Tutorials, welche ich im Internet gefunden haben, sehen ähnlich wie mein Code aus...

Vermutlich mit dem Unterschied, dass die von JComponent erben und paintComponent überschreiben. Oder du reichst das Graphics-Objekt aus dem paintComponent von dem JFrame an eine Method deiner Klasse, wo du dann auf diesem Objekt zeichnest. Aber die Suche nach "swing paint tutorial" sollte auch genügend Literatur bringen.

Hier in den FAQ Entwürfen befindet sich auch ein Thread mit Beispielen. Aber eben noch als Entwurf
 
Man könnte jetzt vielleicht noch vermuten, daß aufgeführtet Code oben gar keine paint-Methode einer Swing- oder AWT-Komponente überschreibt?

@Kalom:
Bitte poste mal Deine komplette Klasse, damit man die Zusammenhänge besser sieht.
 

Zurück
Oben