libro
www.tuyano.com
iアプリ・プログラミング入門

コンポーネントとイベントリスナーを使う (6/6)

作成:2009-12-29 19:09
更新:2009-12-29 19:09

■softKeyPressedの処理をチェック!

ここでは、MainPanel自身にimplements SoftKeyListenerしています。softKeyReleasedのほうは特に使わず、softKeyPressedだけに処理を用意してあります。このメソッド部分を見ると、以下のような形で処理を記述していることがわかります。

switch(key){
case Frame.SOFT_KEY_1:
……左のソフトキーを押したときの処理……
break;
case Frame.SOFT_KEY_2:
……右のソフトキーを押したときの処理……
break;
}

softKeyPressed/softKeyReleasedメソッドでは、押されたキーの値を示すint値が引数で渡されます。これは、Frameクラスに用意されているクラスフィールドを使って、どのキーが押されたのかをチェックすることができます。

ここでは、keyがSOFT_KEY_1だった場合には、TextBoxのテキストを取り出し、それを元にLabelにテキストを設定しています。テキストの取得と変更は「getText」「setText」で行うことができます。このあたりは感覚的にわかるでしょう。

もう1つの、keyがSOFT_KEY_2だった場合には、プログラムを終了する処理をしています。プログラムの終了は、IApplicationに用意されている「terminate」というメソッドを呼び出して行います。したがって、まずIApplicationインスタンスを取得し、そこからメソッドを呼び出す必要があります。

IApplication app = IApplication.getCurrentApp();
app.terminate();

IApplicationにある「getCurrentApp」というクラスメソッドは、現在実行中のIApplicationインスタンスを返します。これでインスタンスを取得し、terminateを呼び出すことでプログラムが終了できます。これは、プログラム終了の基本として頻繁に使われるものですので、ここで覚えておくと良いでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

public void softKeyPressed(int key) {
  switch(key){
  case Frame.SOFT_KEY_1:
     String s = text.getText();
     label.setText("あなたは、「" + s + "」と書いた。");
     break;
  case Frame.SOFT_KEY_2:
     IApplication app = IApplication.getCurrentApp();
     app.terminate();
     break;
  }
}

※関連コンテンツ

「iアプリ・プログラミング入門」に戻る