//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項目をテキストボックスへ
		}
	}
}


















SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送