最後の更新は次の時刻以降のはず. Time-stamp: "2002/10/26 Sat 21:52"
Panel に add() できる部品として, チェックボックスなどの複数選択リストがあります.
public void keyPressed(Panel p, int key) public void keyReleased(Panel p, int key) public void softKeyPressed(int key) public void softKeyReleased(int key)で拾えます.
/* Panel での Key 入力をうけとる例他 2002/10/24 */ import com.nttdocomo.ui.*; /** Panel での Key 入力をうけとる例のクラス */ public class PanelKeySample1 extends IApplication implements ComponentListener,KeyListener,SoftKeyListener { /** 起動するときに呼ばれる メソッド. 必須. */ public void start(){ // 配列の初期化 init(); // Panel を2個用意 p1=new Panel(); p2=new Panel(); // Panel 1//////////////////////////////////////////////////////// /****************************************************************/ // Label を追加 Label lb1=new Label("好きなマペットは?"); p1.add(lb1); /****************************************************************/ // ListBox を追加 li1 = new ListBox(ListBox.CHECK_BOX); // CHECK_BOX, MULTIPLE_CHOICE のいずれか。 li1.append("カーミット"); li1.append("クッキーモンスター"); li1.append("エルモ"); li1.append("ビッグバード"); li1.append("アーニー"); li1.append("バート"); p1.add(li1); /****************************************************************/ // (表示用) TextBox を追加 tb1 = new TextBox("",16,4,TextBox.DISPLAY_ANY); // "表示する文字列",横,縦,そのまま表示指定 tb1.setEditable(false); // ユーザーは入力不可。 tb1.setText("イベント表示領域。これは最初に表示される内容。"); p1.add(tb1); /****************************************************************/ // ソフトキーのラベル p1.setSoftLabel(Frame.SOFT_KEY_1,"次"); p1.setSoftLabel(Frame.SOFT_KEY_2,"終了"); /****************************************************************/ p1.setComponentListener(this);// このクラスの componentAction を使う p1.setSoftKeyListener(this);//このクラスの softKeyPressed/Released を使う // Panel 2 /////////////////////////////////////////////////////// /****************************************************************/ // Label を追加 Label lb2=new Label("キー入力"); p2.add(lb2); /****************************************************************/ // (表示用) TextBox を追加 tb2 = new TextBox("",16,4,TextBox.DISPLAY_ANY); // "表示する文字列",横,縦,そのまま表示指定 tb2.setEditable(false); // ユーザーは入力不可。 tb2.setText("イベント表示領域。これは最初に表示される内容。"); p2.add(tb2); /****************************************************************/ // ソフトキーのラベル p2.setSoftLabel(Frame.SOFT_KEY_1,"次"); p2.setSoftLabel(Frame.SOFT_KEY_2,"ソ2"); /****************************************************************/ p2.setKeyListener(this);//このクラスの KeyPressed/Released を使う p2.setSoftKeyListener(this);//このクラスの softKeyPressed/Released を使う // 最初は p1 を表示。(ソフトキーが押されたら切り替え) Display.setCurrent(p1); } /** 文字列配列の初期化*/ void init(){ keyname[Display.KEY_0]="0"; keyname[Display.KEY_1]="1"; keyname[Display.KEY_2]="2"; keyname[Display.KEY_3]="3"; keyname[Display.KEY_4]="4"; keyname[Display.KEY_5]="5"; keyname[Display.KEY_6]="6"; keyname[Display.KEY_7]="7"; keyname[Display.KEY_8]="8"; keyname[Display.KEY_9]="9"; keyname[Display.KEY_ASTERISK]="*"; keyname[Display.KEY_DOWN]="↓"; keyname[Display.KEY_LEFT]="←"; keyname[Display.KEY_UP]="↑"; keyname[Display.KEY_RIGHT]="→"; keyname[Display.KEY_POUND]="#"; keyname[Display.KEY_SELECT]="選択"; softkeyname[Frame.SOFT_KEY_1]="ソフトキー1"; softkeyname[Frame.SOFT_KEY_2]="ソフトキー2"; } /** implements ComponentListner を宣言したらこれが必要*/ public void componentAction(Component source, int type, int param){ if ( source == li1 && type == SELECTION_CHANGED ){ String s=""; int count=0; for(int i=0; i < li1.getItemCount(); i++){ if(li1.isIndexSelected(i)){ if( count > 0){ s=s+ "と"; } s = s + li1.getItem(i); count++; } } tb1.setText(s + "の" + count + "人が好きなのですね。" ); } } /** implements keyListener を宣言したらこれが必要 */ public void keyPressed(Panel p, int key){ infoKey(0,key); } /** implements keyListener を宣言したらこれが必要 */ public void keyReleased(Panel p, int key){ infoKey(1,key); } /** implements softKeyListener を宣言したらこれが必要 */ public void softKeyPressed(int key){ infoSoftKey(0,key); if( key==Frame.SOFT_KEY_1 ){ if( Display.getCurrent()==p1 ){ Display.setCurrent(p2); } else if ( Display.getCurrent()==p2 ){ Display.setCurrent(p1); } } else if ( key==Frame.SOFT_KEY_2){ infoSoftKey(0,key); if( Display.getCurrent()==p1 ){ terminate(); } else if ( Display.getCurrent()==p2 ){ } } }; /** implements softKeyListener を宣言したらこれが必要 */ public void softKeyReleased(int key){ infoSoftKey(1,key); }; /** キーの名前を textbox に表示するメソッド*/ void infoKey(int action, int key){ tb2.setText(keyname[key]+ actionname[action]); } /** ソフトキーの名前を textbox に表示するメソッド*/ void infoSoftKey(int action, int key){ tb2.setText(softkeyname[key]+ actionname[action]); } Panel p1,p2; TextBox tb1,tb2; ListBox li1; private static String actionname[] = {"が押された","が離された"}; /** キーの個数は 0x1F 個以下*/ private static String keyname[] = new String[0x1F]; /** ソフトキーは2個 */ private static String softkeyname[] = new String[2]; } /* Local Variables: mode: java End: */