import java.applet.*; import java.awt.*; import java.awt.image.*; public class SimpleApplet extends Applet{ Image image; public void paint(java.awt.Graphics g){ g.drawImage(image,0,0,this); // この行で初期化しないで使っている. } }を実行すると,
java.lang.NullPointerException: trying to call hasError()Z at sun.awt.motif.X11Graphics.drawImage(X11Graphics.java:275) at SimpleApplet.paint(SimpleApplet.java:8) at java.awt.Component.dispatchEventImpl(Component.java:1734) at java.awt.Container.dispatchEventImpl(Container.java:946) * at java.awt.Component.dispatchEvent(Component.java:1715) at java.awt.EventDispatchThread$EventPump.dispatchEvents(EventDispatchThread.java:83) at java.awt.EventDispatchThread.run(EventDispatchThread.java:135) at netscape.applet.DerivedAppletFrame$AppletEventDispatchThread.run(DerivedAppletFrame.java:911)のようなメッセージが出ます.このうちで,自分が書いたプログラムで,エラーが起きた場所に一番近い(呼び出し関係の木構造の中で)のは,
at SimpleApplet.paint(SimpleApplet.java:8)なので,8行目を見ると
g.drawImage(image,0,0,this); // この行で初期化しないで使っている.なので,この呼び出しの時の引数の image,0,thisのどれかが null のまま呼 び出したということですが,あきらかに0, thisは除外できるので imageが null だったことがわかります.
また,
import java.applet.*; import java.awt.*; import java.awt.image.*; public class SimpleApplet extends Applet{ Graphics g1; public void paint(java.awt.Graphics g){ g1.drawLine(0,0,100,100); // g1を初期化しないで使っている. } }のように,書いたプログラム上で初期化しない変数を使って,メソッド呼び出 し,インスタンス変数アクセスをおこなうと,
java.lang.NullPointerException: trying to call drawLine(IIII)V at SimpleApplet.paint(SimpleApplet.java:8) at java.awt.Component.dispatchEventImpl(Component.java:1734) at java.awt.Container.dispatchEventImpl(Container.java:946) * at java.awt.Component.dispatchEvent(Component.java:1715) at java.awt.EventDispatchThread$EventPump.dispatchEvents(EventDispatchThread.java:83) at java.awt.EventDispatchThread.run(EventDispatchThread.java:135) at netscape.applet.DerivedAppletFrame$AppletEventDispatchThread.run(DerivedAppletFrame.java:911)のように,自分の書いたプログラムがエラーのスタックトレースの先頭に来ます.
この null pointer exceptionは以下のような時に起きるので,それにしたがっ て修正する必要があります.
Forbidden You don't have permission to access /~ktanaka/programming00/kadai1213.html on this server.とうメッセージが出てアクセ スできないはずである.17:00以降にも同様のエラーが出る時は,Shiftキーを 押しながら,再読み込み(Reload)を押してみること.