- ベストアンサー
アプレットビューワーで表示されない
- アプレットビューワーを使って実行したプログラムが表示されない場合は、以下の対処法を試してみてください。
- まず、使用している画像ファイルが正しく読み込まれているかを確認してください。
- また、画像の幅や高さの取得方法などに誤りがないかも確認してください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
何が「表示されません」という話なのでしょうか。 アプレット起動用のHTMLファイルとkome.jpgファイルを適切な場所に配置してappletviewerを実行すれば、その画像と「このイメージの幅は~」などの文字がアプレットのウィンドウ内に表示されるみたいですけど。 「文字の重心」の計算が妥当かどうかは見ていません。
その他の回答 (2)
- salsberry
- ベストアンサー率69% (495/711)
ああ、私のところで問題なく実行できた理由が分かりました。使用する.jpgファイルの縦・横のドット数が同じだと問題が発生しません。 配列wcnt_pixは、cntpix()の始めのほうでnewしているとおり要素数がimg_widthです。そして「//行ごとのカウント」というループで、変数wjが変化する範囲は0~(img_height-1)となっています。しかし、そのループの中でwcnt_pix[wj]というアクセスがあるので、wj≧img_widthとなったところでArrayIndexOutOfBoundsExceptionが発生します。 この例外が発生するのは配列の要素数または添字の値を間違えている場合ですから、その辺りを確認してください。 なお、「//列ごとのカウント」のループにも同様の問題があります。
- salsberry
- ベストアンサー率69% (495/711)
「何が原因だったのでしょうか?」と聞かれても、あまりにも情報が不足していて答えようがありません。 たとえば、 ・アプレットが表示されないというのは、appletviewerのウィンドウも表示されないのか、ウィンドウは出るがその中身が描画されないのか ・何らかのエラーメッセージや例外が出ているのか ・そもそも、どうやって起動しているのか(moji.classとHTMLファイルとkome.jpgがどこに置かれていて、どのようなコマンドを実行しているのか、その他) ・元の画像に戻せば正しく表示されるのか など。 私の手元ではアプレットのウィンドウ内にkome.jpgの画像が表示されるので、プログラム自体が根本的に間違っているわけではなさそうです。kome.jpgの配置かファイル名を間違っているというのが一番ありそうな気がします。他の可能性としては、お使いのkome.jpgが正しいjpgファイルでないとか。 デバッガを使うなどして、どのメソッドのどこまで実行されているのか追いかけてみましたか?
補足
説明不足ですみません。 クラスファイル、HTMLファイル、jpg画像など関係あるファイルはすべて同じフォルダ内にあります。 appletviewerで起動しました。ウィンドウは出るのですがその中身が描画されません。appletviewerを閉じると下のようなエラー?のようなものが出ました。 java.lang.ArrayIndexOutOfBoundsException: 108 at moji.cntpix(moji.java:80) at moji.init(moji.java:41) at sun.applet.AppletPanel.run(AppletPanel:424) at java.lang.Thread.run(Thread.java:619) ちなみにプログラムはそのままで元の画像に戻すとちゃんと描画されます。
補足
回答ありがとうございます。少し補足させていただきますね。 表示されないとは、アップレット自体が表示されないんです。実はこのプロラムを作成するときは別の画像(同じjpg画像)を使ってやっていたのですが、その画像ではちゃんとアプレットが表示されたんです。 しかし、今回のように画像を変えただけなのにアプレットが表示されなかったのです。ちなみに画像はすべて同じフォルダ内にあります。 何が原因だったのでしょうか?