• ベストアンサー

Applet間の変数の受け渡し

初めにブラウザからアプレットを開いてもらいそこでユーザ名を 入力してもらった後、新たな2つのアプレットを持つブラウザを開き それらに入力されたユーザ名(String)を受け渡したいのですが どのような方法があるのでしょうか。 言い換えますと Applet1→Applet2 もしくは Applet1--(socket1)→Server--(socket2)→Applet2 のようにクライアントの開いた複数アプレット間での変数の受け渡しは可能なのでしょうか? ご経験のある方、参考になるソース、HP等をご存知の方、アドバイスをよろしくお願い致します。

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

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

アプレットは、ブラウザ内のオブジェクトとして存在しますので、 直接は無理です。 A a = new A(); と B b = new B(); があったとして、 aのインスタンスに値を入れたからといって 勝手にbインスタンスに値が入ることはないですから。 ってことで、「ブラウザを経由すればできます」 ブラウザがメインの役割を果たして、 Value v = a.getAAA(); b.setAAA(v); を実施すればよいのですから。 たとえば、ブラウザ内に <APPLET id="applet_a" code="~" codebase="~" ...> <APPLET id="applet_b" code="~" codebase="~" ...> などあったとして、 JavaScriptで appleta = wnd.document.getElementById("applet_a"); username = appleta.getName(); appletb = wnd.document.getElementById("applet_b"); applet_b.setName(username); とすればOKです。 もちろん、各アプレットにセッターとゲッターが必要ですが。

alice-su
質問者

お礼

OSをVistaに変えたら教えてgooにログインできなくなってしまっていたため返事が遅れてしまいました申し訳ございません。 アドバイスありがとうございました。 やはり直接は無理なようですね・・・ JavaScriptはあまり使ったことが無いのでこれから調べて試させていただこうと思います。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBA 変数の受け渡し

    エクセルVBAで標準モジュール内でインプットボックスに入力した変数をユーザーフォームに受け渡してユーザーフォーム内のリストボックスに表示させる場合どのように変数の受け渡しを行えばよいか教えてください。 現在は、一度ワークシートの任意のセルに値を書き出し、その後ユーザーフォームのイニシャライズで先ほどのセルから値を受け取るようにしています。 標準モジュールではインプットボックス入力後「UserForm1.Show」でユーザーフォームの立ち上げを行っています。

  • Appletの使用に関して

    javaでゲームを作っていて、サーバーとクライアントプログラムがあるのですが、ブラウザで表示したいと思い、クライアントプログラムをApplet化しました。デバッグをしたところ、appletviewer ファイル名.htm で実行すると動作するのですが、HTMLファイルをダブルクリックしても表示されません。また、アップロードして、ブラウザで実行しようとしてもうまくいきません。 とりあえず、なぜappletviewerで出来るファイルをダブルクリックでやると出来ないのかがわからないので2つの実行の仕方の違いを教えて下さい。 また、ブラウザで出来ない理由としてどのようなことが考えられるのでしょうか?

    • ベストアンサー
    • Java
  • C#のメンバ変数について

    下記のコードで enterName の変数を static void Resurut() のメソッドへの受け渡しが上手くいかず、どなたか修正点を教えて頂けないでしょうか? 【ソースコード】 static class Program { static string enterName; static int cntWin = 0; //勝利回数 static int cntLose = 0; //敗北回数 static int cntDraw = 0; //引分回数 //ユーザー名の入力 static void Main(string[] args) { string enterName = Console.ReadLine(); Console.WriteLine("ユーザ名を入力してください: {0}", enterName); Start(); Resurut(); } *一部省略 static void Resurut() { if (cntWin > cntLose) { Console.WriteLine("{0}さんの総合勝利です", enterName); } else if (cntLose > cntWin) { Console.WriteLine("CPUの総合勝利です"); } else if (cntWin == cntLose) { Console.WriteLine("引き分けです"); } } }

  • ServletでAppletの表示

    お世話になります。 現在、Eclipse、Tomcat、Firefoxの環境下でServlet及びAppletを勉強しています。 そこでServletでAppletを表示しようとした所、エラーが出ました。 どうやらAppletクラスを探せないでいるみたいなのですが、場所を移動させたりしてもダメでした。 以下エラーのコンソールとServletから抜粋した表示部分のソースです。 オブジェクト指向設計は初めて日が浅いので、他に必要な情報あればご指摘願います。 それでは、よろしくお願いします。 ※エラーコンソール Java Plug-in 1.6.0_17 使用中の JRE のバージョン 1.6.0_17-b04 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Users\Feng Lu ---------------------------------------------------- c: コンソールウィンドウをクリア f: ファイナライズキューのオブジェクトをファイナライズ g: ガベージコレクト h: このヘルプメッセージを表示 l: クラスローダリストをダンプ m: メモリ使用率を表示 o: トリガログ q: コンソールを非表示 r: ポリシー設定を再ロード s: システムプロパティと配備プロパティをダンプ t: スレッドリストをダンプ v: スレッドスタックをダンプ x: クラスローダキャッシュをクリア 0-5: トレースレベルを <n> に設定 ---------------------------------------------------- load: クラス AppletTest が見つかりません。 java.lang.ClassNotFoundException: AppletTest at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/Applet/AppletTest.class at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) ... 7 more 例外: java.lang.ClassNotFoundException: AppletTest Error reading latest JRE version. java.net.SocketTimeoutException: Read timed out load: クラス AppletTest が見つかりません。 java.lang.ClassNotFoundException: AppletTest at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/Applet/AppletTest.class at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) ... 7 more 例外: java.lang.ClassNotFoundException: AppletTest ※ソース(抜粋) protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html><head><title>ServletTest</title></head><body>"); out.println("<applet codebase=\"http://localhost:8080/Applet/\" code=\"AppletTest\" width=800 Height=600></applet>"); out.println("</body></html>"); }

    • ベストアンサー
    • Java
  • アプレットからサーバ側のプログラムを起動したいのですが…

    仕事でJavaを使うことになったのですが、プロジェクト員一同Java初心者で、必死にJavaを勉強していますが、以下のことで困っています。申し訳ありません。助けてください。 UNIXサーバ側の設定とかをいじるプログラムがあるのですが、それをアプレットにして、SEさんがリモートからでも操作出来るようにしろ、と言われました。 とりあえず、Javaアプレットからサーバ側(アプレットのクラスが置いてあるのと同じマシン)のCプログラムを起動し、その結果を受け取るようにしたいのですが、Java経験者に相談したら「アプレットにはセキュリティ上の問題があるのでCGIかServletを使わないと出来ない」と言われました。 では…とServletの勉強を初め、サーバー側にServletEngineをいれてみたのですが、 ServletはHTTPポートと違うポート(8000番とか)を開けてそこにアクセスしなくてはいけないようにみえます。それならクライアント側プログラムをアプレットにし、サーバ側プログラムとSocket通信で結び、サーバ側プログラムがCプログラムを起動、としたほうが楽そうですが、ひとつしかポートを開きたくないと言われたのです。 もしかして「アプレット+Servlet が アプレット+CGI相当」じゃなく「Servlet が アプレット+CGI相当」なのでServlet用のポートだけ開けとけばいいとかいうことでしょうか?  とか思っていたら、JNIでC言語のメソッドをJavaメソッド扱いするとかいう話も小耳に挟みました。それでできるのかしら? ・webポートだけを開いて ・サーバ側のCプログラムを起動してその結果を受け取る ・クライアントのマシンにあらかじめインストールしなくても、ブラウザからアクセスすると操作が対話的に出来るような ものを簡単に作ろうとしたら、一体何を勉強するべきなのでしょうか…。 Applet+CGI? Applet+Servlet? RMI? JNI…? 助けてください…(TT)

    • ベストアンサー
    • Java
  • AppletのTextFieldとButton

    TextFieldに値を入力して、Buttonをクリックするとその値が変数nに代入されるというソースを、どなたか教えていただけませんでしょうか? public void ABC extends Applet{ int n = 0; public void init(){ TextField tf = new TextField("0",5); Button btn = new Button("click!"); this.add(tf); this.add(btn); この後、actionなんちゃらメソッドやらクラスやらでどうにか値をnに入れた結果を実行させたいのですが、よくわかりません。よろしくお願いします。

    • ベストアンサー
    • Java
  • Appletへの変換の仕方

    public class Test { public static void main(String[] arg) throws Exception{ Runtime rt = Runtime.getRuntime(); //Runtimeオブジェクトの取得 rt.exec("Capture2004.exe"); //実行 } } 上記のプログラムをブラウザ上で活用したいので、Appletに直したいのですが、throws Exceptionの使い方がわからず困っています。 変換の仕方がわかる方がいましたら、御指導をお願いいたします。

  • php→JavaScript間の変数受け渡し

    phpで文字列を入れた変数をJS側に渡して、アラートで表示させるために、下記のソースを作成しました。ボタンを押したらアラートが出ると想定して作成しました。 ※フレームワークにcakePHPを使用しています。 ------------------------------------------------------------------------ <?php $aaa = 'abc'; echo '<input type="button" onClick="xxx()">'; ?> function xxx() {  var bbb = <?php echo $aaa ?>;  alert(bbb); } ------------------------------------------------------------------------ しかし、上記の記述では正常にアラートが表示されません。 そこでいろいろ試してみた結果、 「$aaa = 'abc';」ではなく、 「$aaa = '111';」や「$aaa = 111;」だと正常にアラートが表示されました。 このことから、数字や数値だとうまくいくことがわかりましたが、今回は文字列の受け渡しを行ないたいと考えています。 何かご存知の方がいらっしゃいましたら、アドバイスを頂けると幸いです。 備考 当たり前なのかもしれませんが、 「var bbb = <?php echo $aaa ?>;」ではなく 「var bbb = 'abc';」とjs側で文字列を直接入力すると、アラートは正常に表示されました。 変数で文字列を渡す方法がわからず、半日ほど時間を使ってしまいました。 本当によろしくお願いします。

    • ベストアンサー
    • PHP
  • JavaScriptとJavaの通信について

    HTMLで、 <applet code = "XXX.class" width="100" height="100" name="app1"> </applet> JavaScriptで document.app1.showString("表示"); アプレットコード内に showString(String text)というメソッドを用意して、JavaScript側からアプレットにテキストを送っています。 このアプレットはチャットプログラムのクライアントとして動作していて、ブラウザの閉じるボタンでログアウトメソッドを呼ぶように作られています。 しかし、JavaScriptで用意したテキストボックスにテキストを打ち込んで送信するときに リターンキーを使うと、アプレットはブラウザの閉じるボタンを押したと判定して、ログアウトしてしまいます。 アクションリスナーを設定すれば、テキストの内容をリターンキーで送信できるようですが、 JavaScriptで用意したテキストボックスに、アクションリスナーを設定する方法がわかりません。 よろしくお願いします。 送信ボタンでテキストを送信することはできるのですが、 多くのチャットプログラムはリターンキーで送信できますので、リターンキーを使える方法を教えて下さい。

    • ベストアンサー
    • Java
  • フレーム間での値の受け渡し

    上下にフレーム分割された検索画面を作っているのですが、上のフレームで検索条件を入力して、その入力項目を表示したまま下のフレームに検索結果を表示するというものを作りたいのですが、値の受け渡し方法が分かりません。 parent.[上のフレーム名].document.[フォーム名].[テキストボックス名].valueを使うとできるらしいのですが、具体的な使用方法が分かりません。上のフレームで入力された値を下のフレームで変数に入れて使いたいので、parent.~が使えるかどうかもよく分かっていません。 回答よろしくお願いします。