こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

さあ、表示だ!ってあれ~?

import java.awt.*;
import java.applet.*;
public class S1 extends Applet
{
      Image img;
      public void init()
      {
            img=getImage(getCodeBase(),"image/sample.jpeg");
      }

      public void paint(Graphics g){
            g.drawImage(img,50,50,this);
            g.drawString("Hello!",10, 10);
      }
}
というプログラムでアプレットビューアを呼び出すことに成功!
がしかし、Hello!という文字は表示できたものの画像が処理されません。。;
他にもColorやrepaint()を用いて背景に色を設定したり、変えたりすることもできました!
でも、何回やっても画像が表示されません。
原因を教えてもらうとありがたいです。
ちなみに、関係のありそうなファイル状況を説明します↓
Dドライブ━プロジェクトファイル┳imageファイル━sample.jpeg
                     ┣srcファイル━S1.java
                   ┗binファイル┳S1.class
                           ┗java.policy.applet

投稿日時 - 2008-09-30 00:57:32

QNo.4366603

暇なときに回答ください

質問者が選んだベストアンサー

g.drawString("Hello!",10, 10);の次に
g.drawString( getDocumentBase().toString(), 10, 50 );
と追加してみましょう

Hello! の下に getDocumentBase()で取得したフォルダー名が表示されるはずです
この文字列の最後のS1.javaの前までがカレントフォルダーになるので
ここからの相対位置 getImageの第2引数を書かないといけません

表示された文字列が
file D:/プロジェクト/bin/S1.class ならば
getImage( getDocumentBase(), "../image/sample.jpg" );
といった具合でしょう … 1つ階層を上がったImageの下のsample.jpg

投稿日時 - 2008-09-30 02:53:36

補足

file:/D:/プロジェクト/bin/S11222761236046.htmlって表示が!?
でも、binファイルの中にS1.classはあるもののhtml拡張子のものは1つもないんですが。
と、思ったら次に実行すればS11222761587153.htmlってあれ~?内容が変わってる?
どういうことなんでしょうか?
これでは画像が表示できないのも頷けますが。
回答の程お願いします。

投稿日時 - 2008-09-30 17:04:49

お礼

すみません。
jpeg拡張子はjpg拡張子で実行すれば読み込んでくれるわけですね!
いじってるうちに解決できました。
ありがとうございました!

投稿日時 - 2008-09-30 17:19:28

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

お使いの統合環境(またはAppletビューアー)が一時的に作成したHTMLファイルのように思います

当方の環境は NetBeans IDE 6.01ですので #1のような文言が表示されました

投稿日時 - 2008-09-30 17:17:26

あなたにオススメの質問