- PR -

PHPで上書きした画像ファイルをJAVAアプレットに表示させたい。

投稿者投稿内容
Maki
会議室デビュー日: 2004/04/23
投稿数: 9
お住まい・勤務地: Kanagawa
投稿日時: 2004-04-23 16:40
はじめまして。
よろしくお願いいたします。

ローカルにある画像ファイルをJAVAアプレットで加工しようと考えています。

署名付きアプレットではなく、phpとhtmlのフォームを使ってローカルの画像ファイルを選択・アップロードしています。
phpによって、画像ファイル名を"0.jpg"等に固定し、アップする度に上書きしています。
画像ファイルのアップロード・上書きが完了するとphpのページにジャンプし、その中のアプレットに画像が表示されます。

ここまでは問題ないのですが、ローカル画像のアップをやり直し、画像ファイルが上書きされる度にアプレット内の画像表示も変えたいと考えています。
これがうまくいきません。

ブラウザを完全に終了させて、再度アプレットを起動させると上書きした画像は問題なく表示されますが、ブラウザの切り替えだけでは最初にアップした画像が表示されたままの状態です。

今はinit()内で

URL url = new URL(getCodeBase(), "0.jpg");
Image image = Toolkit.getDefaultToolkit().getImage(url);

このように記述した後、

paintメソッド内で
g.drawImage(image, 0, 0, this);

と、しています。

getImage()に問題があるのでしょうか。
このメソッドで一度読み込んだ画像は、アプレットを終了させるまで残るのでしょうか。
そうだとしたら、アプレット内に読み込んだ画像を表示するのではなく、常にサーバにある"0.jpg"をロードして表示させるにはどのようにしたらいいでしょうか。

ご教授ください。
皆様よろしくお願いいたします。
でゅうく
大ベテラン
会議室デビュー日: 2003/11/30
投稿数: 129
投稿日時: 2004-04-23 16:55
Java Plug-in のキャッシュを無効にするとどうなりますか?
Maki
会議室デビュー日: 2004/04/23
投稿数: 9
お住まい・勤務地: Kanagawa
投稿日時: 2004-04-23 17:31
引用:

でゅうくさんの書き込み (2004-04-23 16:55) より:
Java Plug-in のキャッシュを無効にするとどうなりますか?




でゅうくさん、ありがとうございます。
早速試してみました。
残念ながら、最初にアップした画像が表示されてしまいます。
やはりgetImage()に問題があるのでしょうか。
よろしくお願いいたします。
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2004-04-23 18:09
はずしてるかもしれませんが、
引用:

Makiさんの書き込み (2004-04-23 16:40) より:
URL url = new URL(getCodeBase(), "0.jpg");
Image image = Toolkit.getDefaultToolkit().getImage(url);


これをinit()からstart()に移してみてはどうでしょうか?
Maki
会議室デビュー日: 2004/04/23
投稿数: 9
お住まい・勤務地: Kanagawa
投稿日時: 2004-04-23 18:33
引用:

Wataさんの書き込み (2004-04-23 18:09) より:
はずしてるかもしれませんが、
引用:

Makiさんの書き込み (2004-04-23 16:40) より:
URL url = new URL(getCodeBase(), "0.jpg");
Image image = Toolkit.getDefaultToolkit().getImage(url);


これをinit()からstart()に移してみてはどうでしょうか?



Wataさん、ありがとうございます。
start()に移してみました。
アプレットを起動させる度に新しい画像をロードするにはやはりstart()かな?
と思ったのですが、変化ありませんでした。
よろしくお願いいたします。
Maki
会議室デビュー日: 2004/04/23
投稿数: 9
お住まい・勤務地: Kanagawa
投稿日時: 2004-04-26 09:01
出来ました!
getImage()に変えてImageI/Oクラスの
read(URL url)を使ったところ、アプレットを起動させる度に、
画像ファイルのロードが出来ました。

でゅうくさん
Wataさん
ご回答いただきましてありがとうございました。
これからもよろしくお願いいたします。
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2004-04-26 10:02
引用:

Makiさんの書き込み (2004-04-26 09:01) より:
出来ました!
getImage()に変えてImageI/Oクラスの
read(URL url)を使ったところ、アプレットを起動させる度に、
画像ファイルのロードが出来ました。


おおっ よく気付きましたね。私もその後試してみたけど、
確かに画像がリロードされなくて、解決策は結局わからずじまいでしたので。
Maki
会議室デビュー日: 2004/04/23
投稿数: 9
お住まい・勤務地: Kanagawa
投稿日時: 2004-04-26 11:16
引用:

Wataさんの書き込み (2004-04-26 10:02) より:
引用:

Makiさんの書き込み (2004-04-26 09:01) より:
出来ました!
getImage()に変えてImageI/Oクラスの
read(URL url)を使ったところ、アプレットを起動させる度に、
画像ファイルのロードが出来ました。


おおっ よく気付きましたね。私もその後試してみたけど、
確かに画像がリロードされなくて、解決策は結局わからずじまいでしたので。



Wataさんありがとうございます。
私は普段iアプリをメインに制作しています。
たまたま依頼を受け、初めてアプレットに挑戦してみましたが、
今回の画像ファイルのリロードにはかなり苦労させられました

Web上を色々探し回った結果、辿り着いたのが以下のページです。
「画像ファイルのロードの比較」をされていて、大変参考になりました。

http://www5.airnet.ne.jp/sakuraba/java/laboratory/graphics/ImageLoading/ImageLoading.html

今後ともよろしくお願いいたします。

スキルアップ/キャリアアップ(JOB@IT)