- 締切済み
アプレットからHTMLのパラメータ獲得について
長文になりますが、すみません。 アプレットからHTMLのパラメータ獲得についてですが、 通常はAppletクラスの[getParameter(String)]メソッド を使用しますよね。 この時、例えば、HTML側で同一種類の情報としてアプレットに対して渡したい場合、 <param name="Color1" value="black"> <param name="Color2" value="white"> <param name="Color3" value="blue"> <param name="Color4" value="red"> として (Colorの次に来る数字は、1始まり固定で+1ずつ増え最後の数字はHTML表示する毎に変わります。)、 アプレット側はこの"Color"情報を配列で管理したい場合、この情報を格納する配列変数の初期化をするのに簡単に知る方法はないでしょうか? 私が思いつくのは 一回配列変数の要素数を確定するために ------------------------------------------------ String[] color; int counter; for(int i = 1; i < Applet.getParameter("Color"+ i) != null; i++) { counter++; } color = new String[counter]; ------------------------------------------------ とループして要素数を確定した後にもう一度Stringオブジェクトに値を代入するために ------------------------------------------------ for(int i = 0; i < counter; i++) { color[i] = Applet.getParameter("Color"+ i); } ------------------------------------------------ と二重にループするしか方法はないのでしょうか? 数を知る方法だけでなくとも、 他にスマートに情報を獲得する方法はないでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- aton
- ベストアンサー率47% (160/334)
どうしても配列でなければ困る/いやだというのでなければ,java.util.Vectorクラスを使うのがいいんじゃないでしょうか? Vector vec = new Vector(); String str; while ((str = Applet.getParameter("Color"+ i)) != null) { vec.add(str); } 取りだすときはちょっとだけ面倒くさくなりますが。
補足
atonさん。早速のアドバイス有難うございます。 ご指摘どおりVectorにadd()で情報を追加して、 toArray()を使用し、オブジェクトの配列として処理しようかと思ったのですが・・・。 Vector.toArray()メソッドはJDK1.2以降にサポートされた メソッドのようで、IEとMSVMのコンビでは[no such Method]と起こられてしまいました。 なるほど、誰でも使えるアプレットとして作るには取り出す時に面倒くさいですね。 atonさんの言われる通り「どうしても配列」として処理をしたいのです。Vectorに格納してもtoArray()が使えなければもう一度forループをしてVector.get(int)する必要が出てきてまた二重ループになってしまいます。 何か良い方法は無い物でしょうか?