コンポーネントとイベントリスナーを使う (6/6)
作成:2009-12-29 19:09
更新: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を呼び出すことでプログラムが終了できます。これは、プログラム終了の基本として頻繁に使われるものですので、ここで覚えておくと良いでしょう。
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を呼び出すことでプログラムが終了できます。これは、プログラム終了の基本として頻繁に使われるものですので、ここで覚えておくと良いでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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; } }
※関連コンテンツ