getGraphics: cannot find Symbol
Fredde
- java
0 Christoph Schnauß0 Fredde
0 Slyh0 Fredde
Hi,
ich habe eine kleine Animation mit hilfe einer Stift-Klasse und einer Ball-Klasse geschrieben.
wenn ich eine Instanz der Ball-Klasse erzeugen will muss ich als Parameter den Frame übergeben auf dem gezeichnet werden soll.
ich habe also im Hauptprogramm ungefähr sowas:
Ball ball1 = new Ball( /* Paramater */ this);
und in der Klasse sieht dann der Konstruktor etwa so aus:
public Ball( /* Parameter */ Frame pFrame){
hStift = new Stift(getGraphics(pFrame)); //Hier ist der Fehler!
}
was habe ich falsch gemacht??
Die einzige Übergabe für den Stift muss nur das Frame sein, das auch erkannt wird. Also bei der Fehlerangabe steht:
cannot find symbol
symbol: getGraphics(java.awt.Frame)
Danke schonmal
Fredde
hallo,
cannot find symbol
symbol: getGraphics(java.awt.Frame)
Vermutlich fehlt dir ganz am Anfang sowas wie
import java.awt.*;
Grüße aus Berlin
Christoph S.
Vermutlich fehlt dir ganz am Anfang sowas wie
import java.awt.*;
Daran hab ich schon gedacht.
Fredde
Hallo,
public Ball( /* Parameter */ Frame pFrame){
hStift = new Stift(getGraphics(pFrame)); //Hier ist der Fehler!
}
Was du hier tust, ist die Methode getGraphics() auf einem Objekt vom Typ 'Ball'
aufzurufen. Ich würde mal vermuten, dass deine Ball-Klasse keine solche Methode
besitzt. Was du (vermutlich) willst, ist:
new Stift(pFrame.getGraphics())
Denn du willst ja das Graphics-Objekt vom Frame-Objekt haben. Richtig?
Gruß
Slyh
Denn du willst ja das Graphics-Objekt vom Frame-Objekt haben. Richtig?
Ja Danke i-wie hab ich mich da vertan. Danke..
Fredde
Hallo Fredde,
Du solltest allerdings beachtent, dass man in Komponenten nicht so einfach "von außen" etwas hineinzeichnen kann, sondern dies beim Aufruf von Component.paint(Graphics) tun sollte.
Die Komponente sollte sich also gewissermaßen selbst zeichnen. Dazu wäre es sinnvoll von Component abzuleiten.
Wenn Du irgend welche Gründe hast, die Klasse, die das Zeichnen übernimmt, nicht von Component ableiten zu wollen, so solltest Du mindestens dafür sogen, dass das Zeichnen immer aus der paint-Methode heraus angestoßen wird und dort an ein anderes Objekt delegieren.
Grüße
Daniel