Grafikkontext von einer Klasse zu einer anderen üb

Hallo Zusammen!

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.

Vielen Dank für eure Bemühungen
Gruß
Manuel

Hi Manuel,

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
 }
}

MfG, Jan-Peter

Hallo Peter,

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]

Was steht denn in Zeile 69 der Datei „StartApplet.java“?

Exception occurred during event dispatching:
java.lang.NullPointerException
at MeinApplet.paint(StartApplet.java:69)

Der Methodenaufruf zum zeichenen:
meinSmilie.zeichneSmilie(g);

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);
}

Muss ich den Grafikkontext an die Appletklasse als return Wert zurückgeben oder reicht es wenn die Methode void bleibt?

Gruß
Manu

Was steht denn in Zeile 69 der Datei „StartApplet.java“?

Exception occurred during event dispatching:
java.lang.NullPointerException
at MeinApplet.paint(StartApplet.java:69)

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?

Wie schon gesagt, die Rückgabe ist überflüssig.

Hi Jan!
Das Problem hat sich erledigt es funktioniert jetzt. Danke für deine Hilfe, die hat mich auf den richtigen Weg gebracht.

Schönen Tag noch
Gruß Manu

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

narf
hi,

die lösung bitte :wink:

thx