• ベストアンサー

アプレットがサーバにのっけると、動かない。

java初心者です。 あるアプレットを作成(クリックすると画像が変わっていく)したのですが、自分のPC上で、ローカルでブラウザを起動させると正常にアプレットが動くのですが、それ(フォルダ全部)をまるごとサーバにのっけるとなぜかアプレットが正常に動作しません。 クリックしても画像が変わりません…。 ブラウザの下の表示には、アプレット Main Startedとなっています。 画像も最初の画像は問題なく表示されています。ただクリックしても次の画像に移りません。 よろしくお願いします。

  • Java
  • 回答数3
  • ありがとう数5

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

  • ベストアンサー
  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.3

> composite = composite.derive(alpha); Java 1.6をダウンロード/インストールしてください。 それが不可能なら、getInstance()を使うしかないですね。

nabewari
質問者

お礼

何度も回答ありがとうございます!getInstance()を使ったら、うまく動きました! …のですが、今度は別の問題が出まして…。画像が完全に不透明に表示されないです…。例えば、一つ目の画像が表示されてクリックして、二つ目の画像に変化する時に、二つ目の画像が8,9割くらいは不透明に表示されたところで、スレッドが止まるみたいで、一つ目の画像がまだぼんやり見えてしまうんです…。 _ranco_さんが設置したアプレットは、綺麗に見えるので環境の問題ではないよなぁ…と思うんですが…。ただ自分でコードを読んでも、綺麗に完全に次の画像に変わるはず!としか判断できません…。 何か原因は、思い当たるでしょうか…? 何度もすみません。よろしくお願いします。

nabewari
質問者

補足

質問者です。解決しました。 ありがとうございました!

その他の回答 (2)

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

ソース拝見しましたよ。基本的にあなたは、MediaTrackerというものを誤解してますね。あれは、画像(等)の事前ロードを確実に行うためのものであり、ランタイムにアニメクラスのタイミングで頻繁んに呼ぶものではありません。無茶ですよ(物理的な回線のないローカル機の上でしか、まともに動かないでしょう)。 なお、最初からSwingつまりJAppletやJPanelを使えば、ダブルバッファリングがすでに実装されているので、プログラマの負担は軽いです。 このほか、あなたのコードには無駄な部分や、無意味に複雑な部分が多いです。簡単なアプリケーションだから、簡単に書きましょう。たとえば、このように: (参考URLにアクセスしてみてください。) ------------------------------------------------------ /* save and compile as Nabe.java */ /* <applet code="Nabe" width="640" height="480"> <param name="NumImage" value="12"> </applet> */ import java.applet.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; public class Nabe extends Applet implements MouseListener, Runnable{ Image currentImage, buf; Image[] imgs; int now, yousosu, w, h, sleeptime; MediaTracker mt; Thread thread; float alpha = 1.0f; Graphics2D bg; AlphaComposite composite; public void init(){ now = 0; sleeptime = 120; yousosu = Integer.parseInt(getParameter("NumImage")); addMouseListener(this); imgs = new Image[yousosu]; w = getSize().width; h = getSize().height; buf = createImage(w, h); bg = ((Graphics2D)(buf.getGraphics())); mt = new MediaTracker(this); for (int i = 0; i < yousosu; ++i) { imgs[i] = getImage(getDocumentBase(),"imagesyukusyo/" + (i + 1) + ".jpg"); mt.addImage(imgs[i], 0); } try{ mt.waitForID(0); } catch (InterruptedException ie){ ie.printStackTrace(); } composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha); currentImage = imgs[now]; thread = new Thread(this); thread.start(); } public void update(Graphics g){ paint(g); } public void paint(Graphics g){ g.drawImage(buf, 0, 0, w, h, this); } public void mouseClicked(MouseEvent e) { int btn = e.getButton(); if (btn == MouseEvent.BUTTON1){ ++now; if (now >= yousosu){ now = 0; } } else if (btn == MouseEvent.BUTTON3){ --now; if (now < 0){ now = (yousosu - 1); } } currentImage = imgs[now]; thread = new Thread(this); thread.start(); } public void run(){ for (alpha = 0.2f; alpha < 1.1f; alpha += 0.1f){ //フェードイン効果 if (alpha > 1.0f){ //浮動小数点数の端数エラーを防ぐ苦肉の策 alpha = 1.0f; } composite = composite.derive(alpha); bg.setComposite(composite); bg.drawImage(currentImage, 0, 0, w, h, this); repaint(); try { thread.sleep(sleeptime); } catch (InterruptedException e) { e.printStackTrace(); } } } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } } -----------------------------------------------

参考URL:
http://rancoon.web.fc2.com/nabe.html
nabewari
質問者

お礼

コードの指導までありがとうございます(笑) とても勉強になります。参考にしながら、もう一回プログラムしなおしたいと思います。

nabewari
質問者

補足

質問者です。 _ranco_さんのコードを読んで勉強しようと思ったのですが、88行目の composite = composite.derive(alpha); のところで、エラーが出てしまいコンパイルできないのですが…。 もし、よければ、補足よろしくお願いします。

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

ソースコード および > (フォルダ全部) フォルダの構造 プリーズ! ソースは、大きければどこかに載っけてURLを教えて。

nabewari
質問者

お礼

回答ありがとうございます。 下記の記事にファイルをアップしました。よろしくお願いします。 フォルダの構成はこのjavaファイルとこのclassファイルと、「imegesyukusyo」フォルダがあり、このフォルダの中に、画像ファイル(1.jpg~12.jpg)が入っています。 http://rapuntuleru.cocolog-nifty.com/blog/

関連するQ&A

  • JAVAアプレットの仕組みについて

    HTMLに埋め込まれたJAVAアプレットが画像を表示するように記述されている場合、JAVAアプレットは画像をサーバーからダウンロードして表示しているんですよね? JAVAアプレットがサーバーからファイルをダウンロードできるように、 JAVAアプレットがサーバー上にファイルを作り出すこともできるのですか? 今、計算プログラムをダウンロードで配布して、実行して得られた計算結果を投稿してもらう仕組みを作っているのですが、 JAVAアプレットにサーバー上のファイルを操作する能力があるのなら、JAVAアプレットを読み込み実行するだけで配布と投稿の作業が一まとめにできてしまうと思いました。 JAVAアプレットはサーバー上のファイルをどこまで操作できるのでしょうか?

    • ベストアンサー
    • Java
  • JavaアプレットはWebブラウザ上で動作し、Javaサーブレットはサ

    JavaアプレットはWebブラウザ上で動作し、Javaサーブレットはサーバー上で動き、Javaアプリケーションは単独で動作するということは理解しました。 以上の3つには機能的な違いがありますか? JavaアプリケーションにはあってJavaアプレットには無いもの、Javaサーブレットにあって、Javaアプレットには無いもの、JavaサーブレットにあってJavaアプリケーションには無いものなど、もっと詳しく知りたいです。参考の本などもお待ちしています。皆さんの知恵をお貸しください。よろしくおねがいします。

    • ベストアンサー
    • Java
  • アプレットが読み込まれない…。

    javaでアプレットを作っています。他の人の作ったアプレットは普通に、ブラウザ(IE6)で見られるのですが、自分で作ったアプレットはブラウザで読み込もうと思うと、 「アプレット Main(アプレットのクラス名) notinited」 と左下に表示されて、読み込めません…。 Eclipseでコードを書いていたのですが、そちらで実行しようとするときは実行できます。何か心当たりはあるでしょうか? よろしくお願いします。

  • アプレットとサーバーで通信するには?

    今、Server.classをコマンドプロンプトで動かしたままで、ブラウザのアプレット(Client.class)から文字を入力すると返事を返してきて、それをまたアプレットに表示するプログラムができました。 それで、tomcatを使ってブラウザにアプレットをダウンロードさせて・・・と言うのが次のステップなのですが、 tomcatは使ったとこがないので設定などが全くわからないので教えてください。

  • javaアプレットで簡単なもの

    学校のレポートでjavaアプレットでボタンが複数あって、そのボタンによって動作の異なるアプレットを作ることになりました。 でも、JAVAアプレットは、 Graphicsクラスとボタン、イベント処理しか習ってません。 したがって、ホントに簡単なプログラムしか組めないと思うのですが、なにか面白いプログラムないですか?? 例では、小さな丸がボタンよって方向を変えながら動くものでした。(これぐらいのレベルです。) あと、これだけの知識で簡単な電卓って作れますか? 回答よろしくお願いします。

    • ベストアンサー
    • Java
  • JAVAアプレットとIIS6.0について

    おせわになります。 JAVAアプレット初心者です。 現在、JAVAアプレットにて、テキストファイルを読込むプログラムを作成しており、このプログラムをIIS5.0上で実行すると正常に動作するのですが、それをIIS6.0上で実行すると、正常に動作せず、JAVAアプレット実行中に停止してしまいます。 アプレットビュアーで見たところ、最後にInputStreamReader()関数で引っかかってしまっている様なのですが、IIS6.0の場合なにか特別な設定が必要なのでしょうか? ご存知の方がいらっしゃいましたら、お助け下さい。 宜しく御願い致します。

    • ベストアンサー
    • Java
  • Java アプレットの表示

    画像を表示するJavaアプレットを作成したのですが、 AのパソコンはJavaアプレットが表示されるのですが Bのパソコンは表示されません、 Bのパソコンは他のJavaアプレットは表示されます、 なぜですか。

  • ブラウザでJAVAアプレットが表示されない。

    Javaでアプレットを作成したのだけど、ブラウザでJAVAアプレットが表示されません。どうしてなのでしょうか?何か設定でもいるのでしょうか? 良ければ教えてください。お願いいたします。

    • ベストアンサー
    • Java
  • アプレットでエラー

    フリーのアプレットですが、 ローカルでは表示可能。同じアプレットを使用したサイトの閲覧は可能。 http://www.ttn.ne.jp/%7Etys-s/bara01.html レンタルサーバーに(fc2web)アップすれば、エラーが出ます。 タグも殆ど触っていません。 全て同フォルダに収容しています。

  • クリックすると画像がサーっと変わっていくようなアプレットを作りたい。

    java初心者です。 画像を表示して、その画像をクリックするとサーとだんだんとその画像から、次の画像に変わっていくというアプレットを作りたいのですが、どういったメソッドなどを使えば出来るのかが分かりません。 「大体こうやれば出来そう」といったアドバイスをいただきたいです。よろしくお願いします。

専門家に質問してみよう