Applet getCodeBase()

hury

Erfahrenes Mitglied
Hallo,

ich habe zwei Klassen.

Code:
public class game extends java.applet.Applet implements Runnable {

    Spieler mySpieler;

    public void init() {
		mySpieler = new Spieler(getCodeBase());
	}

...
}


Code:
class Spieler extends java.applet.Applet
{
Image framesPlayer[];
	
	public Spieler(URL url)
	{
		framesPlayer = new Image[10];
		 
		 for (int i = 1 ; i <= 10 ; i++) {
			    framesPlayer[i-1] = getImage(url, "/bbgame/T" + i + ".gif");
			}
	}
	
}

Der Konstruktor von Spieler steigt aus mit

Code:
java.lang.NullPointerException
	at java.applet.Applet.getAppletContext(Unknown Source)
	at java.applet.Applet.getImage(Unknown Source)
	at java.applet.Applet.getImage(Unknown Source)
	at Spieler.<init>(Spieler.java:16)
	at game.init(game.java:32)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)



Hat jemand eine Idee warum? getCodeBase() scheint nicht zu wollen...
 
Mich irritiert, dass beide Klassen bei dir von Applet abgeleitet sind, ist das wirklich so nötig? Zudem hab ich noch nie in einem Applet einen Konstruktor schreiben müssen :confused:

Hier ein Zitat, was ich mal gelesen habe:

Applets don't usually have constructors because an applet
isn't guaranteed to have a full environment until its
init() method is called. For example, the Applet image
loading methods don't work inside an applet constructor, but
can be called from the init() method.

Grund: Der AppletStub ist nicht belegt, bevor der Konstruktor durchgelaufn ist!
 
Zuletzt bearbeitet:
Du hast Recht, die Klasse Spieler braucht nicht von Applet abzuleiten. Stattdessen übergebe ich im Konstruktor eine Instanz des Applets, über die Referenz kann dann auch getCodeBase() benutzt werden.

Vielen Dank!
 

Neue Beiträge

Zurück