こんばんは。
以下のようなプログラムで実現できると思います。
-- ここから ----------------------------------------------------------
import com.nttdocomo.ui.* ;
public class Test extends IApplication implements ComponentListener { //ここ!
Panel mainPanel, subPanel1, subPanel2, subPanel3 ;
ListBox menuList ;
public void start() {
mainPanel = new Panel() ;
menuList = new ListBox(ListBox.NUMBERED_LIST) ;
menuList.append("1") ;
menuList.append("2") ;
menuList.append("3") ;
mainPanel.add(menuList) ;
mainPanel.setComponentListener(this) ; //ここ!
subPanel1 = new Panel() ;
subPanel1.add(new Label("Hello World! 1")) ;
subPanel2 = new Panel() ;
subPanel2.add(new Label("Hello World! 2")) ;
subPanel3 = new Panel() ;
subPanel3.add(new Label("Hello World! 3")) ;
Display.setCurrent(mainPanel) ;
}
public void componentAction(Component source, int type, int param) {
//SELECTION_CHANGED では、paramに選択した値が渡される
if (type == SELECTION_CHANGED) {
//ListBoxで選択した値に応じ画面遷移
switch (param) {
case 0 :
Display.setCurrent(subPanel1) ;
break ;
case 1 :
Display.setCurrent(subPanel2) ;
break ;
case 2 :
Display.setCurrent(subPanel3) ;
break ;
}
}
}
}
-- ここまで ----------------------------------------------------------
これだと前画面に戻る事が出来ないので、ソフトキー押下などで呼び出した画面に戻る処理を
それぞれ作成する必要があります。
ただし、P503i(S)は以前選択した値と同じ値を選択すると、componentAction が
呼び出されないので、SoftkeyListenerで行う方が良いと思います。