選択結果を処理しよう

ChoiceGroupを貼り付けただけでは何もできません。選択の結果を処理する手続きを書きましょう。OrderPizza02.javaになります。

ChoiceGroupで選択が行なわれた際にはItemStateListenerが呼ばれます。ItemStateListenerになるためには同名のインタフェースを実装すれば良いです。まずはクラス宣言で

public class OrderPizza02 extends MIDlet implements ItemStateListener {

ItemStateListenerの実装を宣言し、メソッドitemStateChanged()

public void itemStateChanged(Item item) {
    if (item == size) {
        System.out.println("" + ((ChoiceGroup)item).getSelectedIndex());
    }
}

を実装します。選択が行なわれるとこのメソッドが呼ばれます。メソッドの引数は選択がおこなわれたItemです。

ここでは選択が行なわれたのがsizeかどうか調べてから、ChoiceGroup.getSelectedIndex()を呼んで選ばれた選択肢の値を取得し表示させてます。

選択が行なわれたときのどのItemStateListenerに通知すべきか教えとかなきゃいけません。ここではstartApp()の中の

orderForm.setItemStateListener(this);

で指定してます。

コンパイルして実行しましょう。

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

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

1
2
0
1

と表示されてgetSelectedIndex()の値は0から始まり、appendした順番に大きくなることが解ります。


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

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