0

Java でアプレット ベースのゲームを作成していますが、問題が発生しています。次のスタック トレースで null ポインター例外が発生します。

at java.applet.Applet.getAppletContext(Applet.java:204)
at java.applet.Applet.getImage(Applet.java:274)
at ImageEntity.load(ImageEntity.java:84) <==lowest code written by me
at SpriteTest.<init>(SpriteTest.java:14)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:374)
at java.lang.Class.newInstance(Class.java:327)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:795)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:724)
at sun.applet.AppletPanel.run(AppletPanel.java:380)
at java.lang.Thread.run(Thread.java:722)

ImageEntity.java の 84 行目のコードは次のとおりです。

image = applet.getImage( getURL( filename ) );

テスト印刷を使用すると、appletnull ではなく、getURL( filename ).

印刷は をgetUrl( filename )返しますfile:/home/glenn/Documents/code/RMGame/RMPatrolGame/house7.gif

null ポインター例外が発生するのはなぜですか?

4

1 に答える 1

2

java.applet.Applet.getAppletContext(Applet.java:204) のコードは次のとおりです。

public AppletContext getAppletContext() {
    return stub.getAppletContext();
}

「スタブ」はヌルです。 setStub()AppletPanel.runLoader()を呼び出します。

コードはgetImage、アプレットが初期化される前に呼び出しています (つまり、スタブはまだ null です)。

getImage()init() メソッドを呼び出します。コンストラクター内またはフィールドの初期化中に呼び出さないでください。

于 2013-06-27T18:05:28.637 に答える