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

解決済みの質問

画像がうまく表示されません

下のプログラムを実行すると、
最初の読みこみはうまくいくのですが、(一部出なくなる画像がありますが…)
Internet Explorerの更新ボタンを押した時、
(1)の部分で止まってしまうようで、画像が表示されなくなります。
(ローカルドライブで実行した場合はうまく表示できるのですが、ネットワークで実行した場合にこのようになってしまいます)

import java.applet.Applet;
import java.awt.*;

public class met extends Applet{

Image img[] = new Image[6];
MediaTracker mt;

public void init(){
mt = new MediaTracker(this);

for(int i = 0;i < 6;i++){
img[i] = getImage(getCodeBase(),i+".gif"); mt.addImage(img[i],0);
}

try{
mt.waitForID(0);
}catch(InterruptedException e){}
}
public void paint(Graphics g){
// (1)
if(!mt.checkID(0)){
g.clearRect(0,0,500,500);
g.drawString("読み込み中",200,240);
return;
}
g.setColor(Color.white);
g.fillRect(0,0,500,500);
for(int i = 0;i < 6;i++){
g.drawImage(img[i],i*50,0,this);
}
}
}

投稿日時 - 2004-02-16 15:59:00

QNo.781141

困ってます

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

>最初の読みこみはうまくいくのですが、(一部出なくなる画像がありますが…)

この「一部出なくなる画像がある」
というのが、すでにあやしい。あやしすぎる。
(「全部」でなく「一部」ってのが、ね)

僕の予測では、やはり
「アプレットが画像ファイルを探し出せていない」
なのだが。ファイル名が微妙に違うとか。
(まあ、わからないけどね)

--------
次のように、
エラーチェックするように
init()のコードを変えてみよう!

public void init(){
mt = new MediaTracker(this);

for(int i = 0;i < 6;i++){
img[i] = getImage(getCodeBase(),i+".gif");
mt.addImage(img[i],i);//※第2引数に注目
}

try {
mt.waitForAll();
} catch( InterruptedException e) {}

//※メディアトラッカーによるローディングの際のエラーをチェック
for (int i = 0;i < 6;i++) {
if (mt.isErrorID(i)) {
System.out.println("ファイル番号:"+i+" でエラー発生");
}
}
}

--------------
このようにコードを変えて、
あとはアプレットを実行してみよう!
(※このときのアプレットは「ローカルドライブ上に置いたもの」でもよい)

このとき、InternetExprolerの「Javaコンソール」を開いて、
出力を見てみよう。
なにかエラーが表示されているかな?
--------------
ちなみに…
不具合特定のために「Javaコンソール」を使うのは基本よん。

投稿日時 - 2004-02-19 00:20:27

補足

教えてくださったコードを実行してみました。
ローカルドライブ・ネットワークドライブのどちらでも
エラーは表示されませんでした。
また、更新ボタンを押したときもエラーは表示されませんでした。
今回、問題解決はできませんでしたが、
Javaコンソールの使い方や画像読み込みエラーのことについて分かり、今後も十分に役立てられそうです。
どうもありがとうございました。

投稿日時 - 2004-02-27 16:03:51

お礼

ありがとうございます。
早速実行したいのですが、僕は学生で、
今はテスト期間中なので、すぐにすることができません。
テストが終わるのが一週間後なのですが、
テストが終わり次第実行してみたいと思います。
そのときに結果を書きたいと思っていますので、
できれば、一週間後、(2/27か2/28になると思います)
もう一度ここを見てくださればありがたいです。

投稿日時 - 2004-02-19 15:59:17

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

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

回答(2)

ANo.1

サーバに画像ファイルは、
ちゃんと置いてあるのかな?

投稿日時 - 2004-02-17 20:17:54

補足

ありがとうございます。
画像ファイルはすべて同じフォルダ内に置いてあります。
クラスファイルや画像など、全く同じものを入れたフォルダごとネットワークドライブからローカルドライブへ移動させて実行するとうまくいきます。

また、最初の読み込みはうまくいっているので、
画像を見つけられない訳ではないと思います。
そして、更新をおこなった際にうまくいかなくなります。

投稿日時 - 2004-02-18 10:55:46

あなたにオススメの質問