/* TODO: ついでにここで終了の仕方もやる? iアプリ, MIDP での不揮発性メモリへの記録の例 Time-stamp: "2006-11-02 Thu 08:28 JST hig" Saburo Higuchi 2003-2006 http://www.math.ryukoku.ac.jp/~hig/ プログラム解説等 http://www.a.math.ryukoku.ac.jp/~hig/course/juniors_2005/09/ */ import com.nttdocomo.ui.*; /** IApplication または MIDlet を継承するクラス */ public class TextBoxSample extends IApplication { /** 起動するときに呼ばれる メソッド. 必須. */ public void start(){ TextBoxCanvas cc=new TextBoxCanvas(this); Display.setCurrent(cc); } } /** Canvas を継承するクラス. */ class TextBoxCanvas extends Canvas implements SoftKeyListener { TextBoxSample parent; Panel p; private int rgb[] = {0,0,0}; // RGB 値 String tblabel [] = {"R","G","B"}; TextBox tbparam[]; String cctitle [] = {"入力","終了"}; String cftitle [] = {"色","終了"}; private final int dataversion=1; /** コンストラクタ. 最初に1回だけ実行される */ TextBoxCanvas(TextBoxSample m){ this.parent=m; setSoftLabel(Frame.SOFT_KEY_1, cctitle[0]); setSoftLabel(Frame.SOFT_KEY_2, cctitle[1]); } public void paint(Graphics g){ g.setColor(Graphics.getColorOfRGB(rgb[0],rgb[1],rgb[2])); g.fillRect(0,0,getWidth(),getHeight()); // 画面を消す } /** Panel/Form を表示するメソッド*/ public void showPanel(){ p = new Panel(); p.setTitle("色の入力"); // 数値入力用 TextBox tbparam = new TextBox [tblabel.length]; for(int i=0; i < tbparam.length ; i++){ p.add(new Label(tblabel[i])); tbparam[i]= new TextBox("",3,1,TextBox.DISPLAY_ANY); tbparam[i].setEditable(true); tbparam[i].setInputMode(TextBox.NUMBER); p.add(tbparam[i]); tbparam[i].setText(""+rgb[i]); } // 1 では Panel と Canvas で異なる. p.setSoftLabel(Frame.SOFT_KEY_1,cftitle[0]); p.setSoftLabel(Frame.SOFT_KEY_2,cftitle[1]); p.setSoftKeyListener(this); // Panel/Form p に制御を移す Display.setCurrent(p); } // パネルでのソフトキーイベント public void softKeyPressed(int key){ if( key==Frame.SOFT_KEY_1 ){ for(int i=0; i< tbparam.length ; i++){ rgb[i]=Integer.parseInt(tbparam[i].getText()); } Display.setCurrent(this);// Canvas に復帰 } else if( key==Frame.SOFT_KEY_2 ){ parent.terminate(); } } public void softKeyReleased(int key){ } public void processEvent(int type, int param){ if( type==Display.KEY_PRESSED_EVENT ){ switch( param ){ case Display.KEY_SOFT1: showPanel(); break; case Display.KEY_SOFT2: parent.terminate(); default: } } } } /* Local Variables: mode: java End: */