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”しか返って来ませんが後はなんとかなると思います。
今後ともよろしくお願いいたします。
[上に]
[前に]
[次に]