もう一つのChoiceGroup

もう一つChoiceGroupを貼り付けましょう。OrderPizza03.javaになります。画面は左のようになります。

新たに作成するChoiceGroup

topping = new ChoiceGroup("Topping", Choice.MULTIPLE);
topping.append("GreenPeppers", null);
topping.append("Pepperoni", null);
topping.append("Pineapple", null);

[注意]EA1のときはメソッド名がappendElementだったのがFCSではappendに変わってます。EA1からのユーザは注意しましょう。

で作成してます。最初の

topping = new ChoiceGroup("Topping", Choice.MULTIPLE);

で二つ目の引数をChoice.MULTIPLEにしチェックボックス型のChoiceGroupを作ってます。残り三行の選択肢をappendするところは前と一緒です。

itemStateChanged()もちょっと変更して

public void itemStateChanged(Item item) {
    if (item == size) {
        System.out.println("" + ((ChoiceGroup)item).getSelectedIndex());
    } else if (item == topping) {
        boolean[] state = new boolean[((ChoiceGroup)item).size()];
        ((ChoiceGroup)item).getSelectedFlags(state);
        for (int i = 0; i < state.length; i++) {
            System.out.print(" " + state[i]);
        }
        System.out.print("\n");
    }
}

となります。始めにitemを調べてsizeだったらgetSelectedIndex()を呼ぶところは前と一緒です。

itemtoppingだったらgetSelectedFlags(boolean[])を呼びます。これは引数のboolean[]型変数に選択の結果が代入されるメソッドです。

boolean[]型の変数を作成するところで選択肢の個数が必要となるのでsize()を呼んで調べます。

[注意]EA1のときはメソッド名がgetSizeだったのがFCSではsizeに変わってます。EA1からのユーザは注意しましょう。

さて実行して見ましょう。

D:\midp-fcs\segi\pizza>javac -bootclasspath /midp-fcs/classes OrderPizza03.java
D:\midp-fcs\segi\pizza>preverify -classpath .;/midp-fcs/classes OrderPizza03
D:\midp-fcs\segi\pizza>cd output
D:\midp-fcs\segi\pizza\output>midp OrderPizza03

選択するたびにコンソールには

 true false false
 true false true
 true true true
2
 false true true

と表示されてgetSelectedFlags(boolean[])には選択されているばあいはtrue、されていない場合はfalseが入ることが解ります。


前の項目へ次の項目へ
「MIDPで遊ぼう!」のページへ
せぎてつ伝言板
このページの感想をどうぞ!
お名前(匿名OK):

メールアドレス:
最終更新日 : 2000年10月7日(土)
tetsu@segi.org