質問: import java.awt.*; import java.applet.*; public class S1 extends Applet { Image img; public void init() { img=getImage(getCodeBase(),"sample.jpeg"); } public void paint(Graphics g){ g.drawImage(img,50,50,this); } } 以上プログラムでアプレット上に拡張子がjpeg形式のsampleという100*100の画像を表示しようとしています。 クラス名はS1で問題なくエラーもありません。 java関連のサイトでも同じようにして画像が表示できるとされていたのですが、私のパソコンではアプレット上には何も表示されないまま、アプレットのみが起動するという状態になりました。 Eclipse SDKというものを使用していますが、それが原因なのかどうかもわからず困っています。 お手数をお掛けしますが、回答の程よろしくお願いします。
回答: そのアプレットは、ちゃんとWebサイトにアップロードし、Webブラウザからアクセスして試してみたのだろうか。それとも、ローカルボリュームにおいてあるのをそのままWebブラウザで見ようとしたのか。 前者で表示されないのであれば、ファイル名とか、あるいはHTMLのタグとかどこかに問題があるのかもしれない。が、後者で表示されないのであれば、それは正常。アプレットにはさまざまな制限があり、ローカルボリュームに置かれた状態でローカルボリュームにあるファイルにはアクセスできない。(ただし、アプレットビューワを使えば表示できる) また、もし作成したアプレットがJarファイルにまとめられているとしたら、これは表示されないのが当たり前。getImageはファイルアクセスをするものであって、Jarのアーカイブ内にあるイメージデータを読み込むことはできないから。 Eclipseを使っているかどうかはこの場合、無関係だろう。多くのJavaプログラマはEclipseを利用しているはずだし、それで何の問題もないはずだから。