| GUI の構成ブロックであるコンポーネントを使用する |
Choiceクラスは、個別のボタンでアクセスする 、メニューに似た選択肢のリストを提供する。ユーザはボタンを押して "メニュー" を起動し、その項目の中から 1 つを選択する。 ユーザが項目を選択すると、Choice はアクションイベントを生成する。
Choice は、限られたスペースに多数の選択肢を表示しなければならない場合や、ユーザがすべての選択肢を一度に見る必要のない場合などに便利である。ユーザはボタ ンを押して "メニュー" を起動し、その項目の中から 1 つを選択する。 この UI 要素はポップアップリスト とも呼ばれる。 複数の選択肢を提供する方法としては、ほかに チェックボ ックス、リスト、メニューがある。
以下に、Choice と Label をもつアプレットを示す。 ユーザが Choice リストから項目を 1 つ選択すると、それに応じて Label が変化す る。Choice の最初の項目のインデックスは 0 であることに注意する。
使用中のブラウザは <APPLET> タグを理解しない。したがって、ここでは選択肢のスナップショットを示す。
このページのアプレットはまずこのように表示される。
別の選択項目 ("san") を選択しようとすると、アプレットはこのようになる。
そして、"san" を選択した後のアプレットの最終的な外観はこのようになる。
以下に、Choice を作成してそこからのイベントを処理するコードを示す。 (プログラム全体も参照できる。)action() メソッドへの 2 番目のパラメータ (e.arg と 同じ) は、選択された項目の文字列であることに注意する。
//...インスタンス変数を定義する:
Choice choice; //選択肢のポップアップリスト
//...初期化を行う:
choice = new Choice();
choice.addItem("ichi");
choice.addItem("ni");
choice.addItem("san");
choice.addItem("yon");
label = new Label();
setLabelText(choice.getSelectedIndex(), choice.getSelectedItem());
. . .
public boolean action(Event e, Object arg) {
if (e.target instanceof Choice) {
setLabelText(choice.getSelectedIndex(), (String)arg);
return true;
}
return false;
}
}
上記で使用されているメソッド以外にも、Choice クラスは以下のような便利なメソッドを定義している。
int countItems()String getItem(int)void select(int)void select(string)| GUI の構成ブロックであるコンポーネントを使用する |