このページでは、パラメータを実装するときの 4 つの問いに関する考え方を説明す る。
- アプレットはユーザに何を設定させるのか?
- パラメータの名前を何にするか?
- それぞれのパラメータはどのような種類の値をとるのか?
- それぞれのパラメータの既定値を何にするか?
アプレットはユーザに何を設定させるのか?
アプレットがサポートするパラメータは、そのアプレットが行う内容と、 アプレットにどの程度の柔軟さを望むかに応じて異なってくる。 たとえば、イメージを表示するアプレットはイメージ位置を指定するパラメータをも ち、 また、サウンドを再生するアプレットはサウンドを指定するパラメータをもつ場合が多い。
アプレットは、(イメージとサウンドファイルのような) 資源の位置を指定するパラメータだけでな く、外観や操作を細かく指定するパラメータをもつことがある。 たとえば、動画アプレットが 1 秒当たりのイメージ枚数をユーザに指定させたり、 別のアプレットでは表示する文字列をユーザに変更させたりすることが考えられる。 あらゆることが可能なのである。
パラメータの名前を何にするか?
アプレットのサポートするパラメータを決定したら、次に、それらの名前を考える必要がある。 予約されている Name という名前が 1 つあり、これはアプレットの名前にだけ使用 されることに注意する。 (この名前は、同じページの他のアプレットにメッセージを送るで説明されているとおり、アプレットが互いに情報交 換できるようアプレットを探し出すために使用される。)
典型的なパラメータ名として、画像ファイルなどのデータファイルのための SOURCE または SRC、複数のタイプのデータファイルを使用できるアプレットのためのXXXSOURCE (たとえば IMAGESOURCE)、XXX のリストをとるパラメ ータのための XXXS (ここでも XXX には IMAGE などが入る) がある。 名前をわかりやすくすることの方が、名前の長さを短くすることよりも重要である。
注: このチュートリアルでは通常、すべて大文字でパラメータ名を参照しているが、パラ メータ名はケースインセンシティブ (大文字小文字を区別しない) である。 たとえば、IMAGESOURCE と imageSource は共に同じパラメータを参照する。 一方、パラメータの値 は、(パラメータ値の解釈前に toLowerCase() メソッドを使用するなどして) 別の解釈方式を指定し ないかぎりケースセンシティブ (大文字小文字を区別する) である。
それぞれのパラメータはどのような種類の値をとるのか?
パラメータ値はすべて文字列である。 ユーザがパラメータ値を引用符で囲むかどうかにかかわらず、その値は文字列として アプレットに引き渡される。 ただし、アプレットではその文字列をさまざまに解釈することができる。
アプレットは一般に、パラメータ値を次の型のどれかとして解釈する。
- URL
- 整数
- 浮動小数点数
- 論理値 -- 一般には "true"/"false" または "yes"/"no"
- 文字列 -- たと えば、ウィンドウタイトルとして使用する文字列
- 上記の任意の型のリスト
それぞれのパラメータの既定値を何にするか?
ユーザがパラメータを指定しなかったり、間違って指定したとしてもアプレットが実行できるように、各パラメータには実用的な既定値を用意しておくべきである。たと えば動画アプレットでは、1 秒当たりに表示する手ごろなイメージ枚数を既定してお く。こうしておけば、ユーザが適切なパラメータを指定しなくとも、アプレットは良好に動作するのである。
例: AppletButton
このチュートリアル全般で、ウィンドウを起動する必要があるアプレットは、高度に コンフィグが可能な AppletButton クラスを使用している。 ただ、レイアウトマネージャを使用する ページだけは、5 つの異なる例に対して AppletButton を 5 回 (AWT が提供するレイアウトマネージャごとに 1 回ずつ) 使用している。 AppletButton の GUI は、ボタンと状態を表示するラベルから成り立つ単純なものである。 ユーザがボタンをクリックすると、アプレットはウィンドウを起動する。
AppletButton クラスは、以下の項目のどれかまたはすべてをユーザが指定できるよ うにパラメータを定義しているので非常にフレキシブルである。
- 起動するウィンドウのタイプ
- ウィンドウのタイトル
- ウィンドウの高さ
- ウィンドウの幅
- ウィンドウを起動するボタンのラベル
AppletButton の典型的な <APPLET> タグは次のようなものである。
<APPLET CODE=AppletButton.class CODEBASE=example WIDTH=350 HEIGHT=60> <PARAM NAME=windowClass VALUE=BorderWindow> <PARAM NAME=windowTitle VALUE="BorderLayout"> <PARAM NAME=buttonText VALUE="Click here to see a BorderLayout in action"> </APPLET>ユーザがパラメータの値を指定しない場合、AppletButton は合理的な既定値を使用する。 たとえば、ユーザがウィンドウのタイトルを指定しないときは、 AppletButton はウ ィンドウの型をタイトルとして使用する。
次のページでは、AppletButton がユーザからのパラメータ値を得るためのコー ドを示す。