//TextBox,Button,ListBox,LabelをPanelに配置して使う例。
//テキストボックスで入力した文字列を、ボタンでリストボックスへ追加、削除する簡単なアプリ。
//最下位に現在時刻を表示するラベルを配置する。
import com.nttdocomo.ui.*;//IApplicationのiアプリで使う各種クラスの利用
public class TestPanel extends IApplication {
public void start(){
MyPanel panel = new MyPanel(this);
Display.setCurrent(panel);//スクリーンやキーパッドの情報を取得をPanel(他にCanvasに指定する場合もある。)に任せる定石。
}
}
class MyPanel extends Panel implements SoftKeyListener ,ComponentListener{
IApplication i_app;//呼び出し元の作品であるHelloWorldを管理する。コンストラクタで記憶
TextBox textbox = new TextBox("",40,1,TextBox.DISPLAY_ANY);
Button btnAdd = new Button(" 追加 ");
Button btnDel = new Button(" 削除 ");
Button btnChg = new Button(" 変更 ");
ListBox listbox = new ListBox(ListBox.SINGLE_SELECT,9);
ClockLabel clock;
public MyPanel(IApplication app){
i_app = app;
//コンポーネント配置
textbox.setInputMode(TextBox.KANA);//初期入力モードを設定
add(textbox);
add(btnAdd);
add(btnChg);
add(btnDel);
add(listbox);
listbox.append("999"); //リストデータの初期値設定
listbox.append("5678");
listbox.append("123");
clock = new ClockLabel();
add(clock.getClockLabel()); //クロックラベル設定
setSoftLabel(Frame.SOFT_KEY_1, "Exit");
//インターフェイスに対する初期化
setSoftKeyListener(this); // SoftKeyListener
setComponentListener(this);//コンポーネントリスナを登録
}
public void softKeyPressed(int key_id){ //SoftKeyListenerのabstracを実装
}
public void softKeyReleased(int key_id){//SoftKeyListenerのabstracを実装
if ( key_id == Frame.SOFT_KEY_1 ){
i_app.terminate();//アプリケーション終了
}
}
public void componentAction(Component source,int type,int param){//ComponentListenerのabstracを実装
System.out.println(source.toString() + "," + type + "," + param);
if(source == textbox){
} else if(source == btnAdd){
listbox.append(textbox.getText());//テキストボックス内用をリストに追加
} else if(source == btnChg){
int n = listbox.getItemCount();
int iSel = listbox.getSelectedIndex();//選択されている項目の位置取得
System.out.println("sel =" + iSel + ",no=" + n);
if(iSel >=0){
String [] a= new String [n];
for(int i = 0;i < n; i++){ //配列に移動する時に変更
if(i == iSel){
a[i] = textbox.getText();//変更データ
} else {
a[i] = listbox.getItem(i);//変更しないデータ
}
}
listbox.removeAll();//全ての項目を削除
listbox.setItems(a);//全てを設定し直す。
}
} else if(source == btnDel){
int n = listbox.getItemCount();
int iSel = listbox.getSelectedIndex();//選択されている項目の位置取得
if(iSel >=0){
String [] a= new String [n-1];
for(int i = 0, k = 0;i < n; i++){ //配列に移動する時に変更
if(i != iSel){
a[k++] = listbox.getItem(i);//削除しないデータ
}
}
listbox.removeAll();//全ての項目を削除
listbox.setItems(a);//全てを設定し直す。
}
} else if(source == listbox){
int iSel = listbox.getSelectedIndex();//選択されている項目の位置取得
//System.out.println("sel no=" + iSel);
textbox.setText(listbox.getItem(iSel));//ListBox項目をテキストボックスへ
}
}
}