JavaScriptでJavaアプレットは起動できますか?

[上に] [前に] [次に]
ばーばぱぱ 1999/10/26(火) 16:47:50
あるボタンをクリックするとJavaScriptが起動し、
その中にJavaAppletを起動する処理を付け、
その結果をテキストに表示させるようなことは
できるのでしょうか?
処理だけをアプレットで行いたいのです。
よろしくお願いします。

ばーばぱぱ 1999/10/26(火) 17:05:19
追記です。
環境はIE4.0です。

だし 1999/10/26(火) 18:32:17
<applet タグを、HTMLに入れたくないって事
でしょうか?

みせたくないだけなら、
width=0 height=0 をタグに追加すれば出来ますけど。

ばーばぱぱ 1999/10/27(水) 09:39:34
すみません。説明不足でした。
テキストやボタンなどはHTMLで作成して、
ボタンを押したときにJavaで計算し、計算結果を
テキストに表示させる。
ということをしたいのです。
JavaScriptのみJavaアプレットのみは
すでに作ってあるのですが、これを組み合わせると
どうなるかを調べていたのです。
あくまでできるかできないかを知りたいと思います。
できれば処理方法なども知りたいので
よろしくお願いします。

だし 1999/10/27(水) 11:18:06
もっと詳しい人のレスがあればと思っていましたが、
ないようですので。。。(また勘違いしたらごめん)

例)アプレット MyApplet.class に
  public String method1( String s ) { 〜
  のように、文字列を入力して文字列を返すメソッドが、
  あるとします。

<html><body>
<applet code="MyApplet.class"
 id="MyApplet1" mayscript width=80 height=80 >
</applet><br>

<input type="text"   name="txt_input"  ><br>
<input type="text"   name="txt_output" ><br>

<input type="button" value="スクリプトから動かす"
     onclick="my_Script()" >

<SCRIPT language="JavaScript">
function my_Script() {
 txt_output.value = document.applets[0].method1(txt_input.value);
}
</SCRIPT>
</body></html>

とすると、ボタン→JAVAスクリプト→アプレットと
動作します。
ちなみに、
txt_output.value = document.applets[0].method1.txt_input.value);
の部分を、
txt_output.value = MyApplet1.method1(txt_input.value);
としても、動くブラウザがありますが、(IE4だと動かない?)
正式には、Applets[0]の様に、HTML内に出現した順番で、
指定する様です。

ばーばぱぱ 1999/10/27(水) 13:07:28
だしさんありがとうございます。
やりたいことはあっています。
しかし、Javaの方の書き方がいまいちよくわからずにいます。
>public String method1( String s ) { 〜
はどこに書いたらよいのですか?
また、引数は1つしか設定できないのですか?

だし [HomePage] 1999/10/27(水) 14:50:42
> JavaScriptのみJavaアプレットのみは
> すでに作ってあるのですが、
とあったので、わかっていると思ったのですが。。。

私もJavaアプレットについては、J++で
しか作った事が無いので、多少異なるかも知れませんが。。

public class クラス名 extends Applet
{
  public 戻りの型 メソッド名 ( 引数 )
  {
  }
  。
  。
  。
}
のように、クラスの中に、そのクラスのメソッドが、複数
指定できるように、なっていると思います。
public String method1( String s ) {
は、そのメソッドの指定部分です。

どちらにしても、JAVAアプレット関連は、
こちらのラウンジでは、あまり深く立ち入らない事
になっている様ですので、上の[HomePage]のところ
などから、たどってみた方がいいと思いますよ。

ばーばぱぱ 1999/10/27(水) 16:02:47
だしさんありがとうございます。
最後に一つだけ教えてください。
以下のようにJavaアプレットを書いているのですが
「メソッド”String Keisan(String s)”は値を返す必要があります」
とエラーが出てしまいます。
どうしたらよいのですか?

public class Form1 extends Applet{

  float f1=0;
  float f2=0;
  String s1;
  String s2;
  String s3;

public String Keisan(String s){
try{
     s1 = s;

f1 = Float.valueOf(s1).floatValue();
s3 = "";

s3 = String.valueOf(f1 * 0.45359);
keisan(s3);//ここでもエラー
}
catch(Throwable err){
}
}

だし 1999/10/27(水) 17:02:26
むーん(汗)。
しばらくアプレットを作っていない私では、
きつくなってきたような。。。

> 「メソッド”String Keisan(String s)”は値を返す必要があります」
は、return がないからですね。

> keisan(s3);//ここでもエラー
は、s3を呼び元(スクリプト)に返したいのでしょうか?
であれば、以下で直るとおもいます。

public String Keisan(String s){
  try{
    s1 = s;
    f1 = Float.valueOf(s1).floatValue();
    s3 = "";
    s3 = String.valueOf(f1 * 0.45359);
    return s3 ;
  }
  catch(Throwable err){
    return "Error" ;
  }
}

ばーばぱぱ 1999/10/27(水) 17:28:20
だしさん、ようやくJavaアプレットのエラーはなくなりました。
しかし、JavaScriptは駄目みたいです。
さっき最後に一つ・・・と言っておきながら質問してしまうことを
お許しください。また、回答よろしくお願いいたします。

JavaScriptで
f1.t2.value=window.document.Applet[0].keisan(f1.t2.value);
としたところ、
「window.document.Applet[0]はオブジェクトではありません。」
となってしまいます。
なにがいけないんでしょうか?

ばーばぱぱ 1999/10/27(水) 17:34:52
すみません。記入漏れです。
>f1.t2.value=window.document.Applet[0].keisan(f1.t2.value);
の前に f1=document.form;
が入ります。

だし 1999/10/27(水) 18:07:23
ごめんなさいー。ちょっと間違えがあったみたいです。
私もIE4では、呼び出しに、苦労したことがあって、
IE3 や IE5 だと呼び出せるのが、呼び出せなかったです。
>正式には、Applets[0]の様に、HTML内に出現した順番で、
>指定する様です。
上記は、撤回します。

わたしの知る限り、IE4で呼び出せる方法は、
<FORM>〜</FORM>タグの中にアプレットを入れないで、
rtn = document.myApplet.method1("test");
の様に、id=で付けた名前をつかう方法だけでした。
いいかげんな事をいって、すみません。

<applet name="myApplet" id="myApplet"
code="myApplet.class"
  width=420 height=20 MAYSCRIPT>
</applet>
と記述して、スクリプト内では、
rtn = document.myApplet.method1("test");
で、私のページでは、IE4 IE5 で、呼び出せています。

すみません。その他のIE4で可能な呼び出しは知りません。
(色々やったけど、私もその他はだめでした。)

ばーばぱぱ 1999/10/27(水) 18:26:53
[[解決]]
だしさん、いろいろとありがとうございました。
ようやくJavaからデータを取得できました。
まだ、”Error”しか返って来ませんが後はなんとかなると思います。
今後ともよろしくお願いいたします。

[上に] [前に] [次に]