Ich habe folgendes Problem:
Ich habe eine Appletklasse MeinApplet, diese Klasse ist für die Bildschirmausgabe zuständig.
Die andere Klasse heißt Smilie und erstellt Smilies.
Nun habe ich folgendes Problem.
Ich möchte dass das Objekt Smilie den Grafikkontext( Graphics g) von MeinApplet übergeben bekommt und in diesen Kontext dann den Smilie zeichnet und danach gibt Smilie den verämnderten Grafikkontext an MeinApplet zurück, welches dann dafür sorgt dass der Smilie auf dem Bildschirm ausgegeben wird.
Hier mal die Musterklassen:
_public class MeinApplet extends Applet
{
private Smilie meinSmilie;
public void init()
{
meinSmilie = new Smilie();
}
public void paint(Grapihcs g)
{
g = meinSmilie.zeichneSmilie(g);
}
}
public class Smilie
{
…Variablen
…Methoden
public Graphics zeichenSmilie(Graphics g)
{
…
return g;
}
}_
Die Klassen sind natürlich auf das Wesentliche konzentriert.
Ich hoffe mir kann jemand helfen.
wo ist denn eigentlich Dein Problem?
Du hast die Lösung doch schon hingeschrieben - lass einfach die überflüssigen returns weg und tue in der Methode Smilie.zeichneSmilie was halt zu tun ist:
public class MeinApplet extends Applet {
...
public void paint(Grapihcs g) {
meinSmilie.zeichneSmilie(g);
}
...
}
public class Smilie {
public Graphics zeichenSmilie(Graphics g) {
g.drawImage(...); // oder was auch immer
}
}
Danke für deine Antwort, aber ich bekomme immer folgende Fehlermeldung und es wird nichts gezeichnet:
Exception occurred during event dispatching:
java.lang.NullPointerException
at MeinApplet.paint(StartApplet.java:69)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Weist du vielleicht woran das liegen könnte?
Gruss
Manuel
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Die Methode zeichneSmilie habe ich jetzt mal aus Testzwecken
nur auf eine Textausgabe reduziert sie sieht jetzt so aus:
public void zeichneSmilie(Graphics g)
{
g.drawString(„Ich komme aus der Klasse Smilie“,100,100);
}
Das hat mit dem Problem nix zu tun. Also nochmal: Was steht in Zeile 69 der Datei StartApplet.java? Dort trat in Deinem vorhin geposteten Call-Stack die NullPointerException auf.
Muss ich den Grafikkontext an die Appletklasse als return Wert
zurückgeben oder reicht es wenn die Methode void bleibt?