ここでは、左側のソフトキーが押された時の処理を行うため、受け取った引数が「0」の時に処理を行います。実際のコードでは、次のように左側のソフトキーが押された場合にiアプリ終了させる処理を記述します。
39: /* (非 Javadoc) 40: * @see com.nttdocomo.ui.SoftKeyListener#softKeyPressed(int) 41: */ 42: public void softKeyPressed(int arg0) { 43: if (arg0 == 0) terminate(); 44: }
softKeyPressedメソッドはSoftKeyListenerインタフェース由来のメソッドであり、ソフトキーが離された場合に呼び出されます。ただし、このサンプルでは処理を行わないため、中身を空の状態にしています。
45: /* (非 Javadoc) 46: * @see com.nttdocomo.ui.SoftKeyListener#softKeyReleased(int) 47: */ 48: public void softKeyReleased(int arg0) { : 49: }
ここまでで処理の記述が終わったので実行してみましょう。「Ctrl」+「F11」キーで実行できます。
実行画面上でボタンを押すと、画面5のようにラベルのテキスト表示が「押された」に変わります。
高レベルAPIでは、前述したように自由度が低くコンポーネントの配置が決められてしまいます。
ただし、NTTドコモ504シリーズからの環境、DoJa2.0以降では、コンポーネント配置をある程度可能とするためにHTMLLayoutが使えます。HTMLという表記が含まれますが、これはHTMLタグを記述するというわけではなく、HTMLで <center> タグや <br> タグを使う簡易的なものです。
サンプル記述は、次のようになります。
16:public class FirstApp extends IApplication 17:implements ComponentListener, SoftKeyListener{ 18: Label resultLabel; 19: /* (非 Javadoc) 20: * @see com.nttdocomo.ui.IApplication#start() 21: */ 22: public void start() { 23: Panel p = new Panel(); 24: HTMLLayout hl = new HTMLLayout(); 25: p.setLayoutManager(hl); 26: p.add(new Button("てすとよ")); 27: hl.br(); 28: resultLabel = new Label("表示する"); 29: hl.begin(HTMLLayout.CENTER); 30: p.add(resultLabel); 31: hl.end(); 32: p.setComponentListener(this); 33: p.setSoftLabel(0, "終了"); 34: p.setSoftKeyListener(this); 35: 36: Display.setCurrent(p); 37: } 38:
上記までの実行画面は以下の通りです。「br()」メソッドを使っているため、ボタン表示の次の行で改行され、ラベル表示されています。また、ラベル追加の前に、HTMLLayout.CENTERを指定したbeginメソッドを利用しているため、ラベルが中央に表示されます。
HTMLLayoutを使っても、表示調整はこの程度です。もっと自由に画像や色を使った画面構成にするためには、特集第3回目で解説する「低レベルAPI」を使う必要があります。この場合には、描画処理に関わるキー入力処理はすべて自らで記述する必要があるため、比較的複雑です。
Copyright © ITmedia, Inc. All Rights Reserved.