コンポーネントとイベントリスナーを使う (5/6)
作成:2009-12-29 19:07
更新:2009-12-29 19:07
更新:2009-12-29 19:07
■ソフトキーを使う
では、用意したコンポーネントを利用して、簡単な処理を実装することにしましょう。ユーザーが操作したときに何かの処理を実行させる場合、Javaでは「イベントリスナー」を利用します。Panelでも、これは同じです。ただし、AWTのボタンにあるようなActionListenerはありません。
iアプリでもっとも多用されるイベントリスナーは、「SoftKeyListener」でしょう。これはソフトキーを押したときに実行される処理のためのものです。ケータイでは、各種のアプリケーションを実行しているとき、下部の左右に「メニュー」などのテキストが表示され、そのすぐ下にあるキーを押して操作するようになっています。この液晶画面のすぐ下にある左右2つのキーが「ソフトキー」です。このキーを押したときの処理を行うのが、SoftKeyListenerです。
このSoftKeyListenerは、AWTなどと同様にインターフェイスとして用意されています。これをimplementsしたクラスを用意し、そこに以下の2つのメソッドを用意してやります。
public void softKeyPressed(int key) {……押したときの処理……}
public void softKeyReleased(int key) {……離したときの処理……}
これで、ソフトキーを押し下げたり離したりしたときに何かの処理を実行させることができます。このSoftKeyListenerは、Panelに用意されている「setSoftKeyListener」を使って設定します。組み込まれたコンポーネントに個々に組み込みはしません。
では、先ほどのサンプルを修正して、ソフトキーを押したら入力されたテキストを元に簡単なメッセージを表示するサンプルを作成してみましょう。
起動してTextBoxにテキストを書き、左のソフトキー(CLIKと表示されたもの)を押すと、メッセージが表示されます。また右のソフトキー(EXITと表示されたもの)を押すと、プログラムを終了します。
iアプリでもっとも多用されるイベントリスナーは、「SoftKeyListener」でしょう。これはソフトキーを押したときに実行される処理のためのものです。ケータイでは、各種のアプリケーションを実行しているとき、下部の左右に「メニュー」などのテキストが表示され、そのすぐ下にあるキーを押して操作するようになっています。この液晶画面のすぐ下にある左右2つのキーが「ソフトキー」です。このキーを押したときの処理を行うのが、SoftKeyListenerです。
このSoftKeyListenerは、AWTなどと同様にインターフェイスとして用意されています。これをimplementsしたクラスを用意し、そこに以下の2つのメソッドを用意してやります。
public void softKeyPressed(int key) {……押したときの処理……}
public void softKeyReleased(int key) {……離したときの処理……}
これで、ソフトキーを押し下げたり離したりしたときに何かの処理を実行させることができます。このSoftKeyListenerは、Panelに用意されている「setSoftKeyListener」を使って設定します。組み込まれたコンポーネントに個々に組み込みはしません。
では、先ほどのサンプルを修正して、ソフトキーを押したら入力されたテキストを元に簡単なメッセージを表示するサンプルを作成してみましょう。
起動してTextBoxにテキストを書き、左のソフトキー(CLIKと表示されたもの)を押すと、メッセージが表示されます。また右のソフトキー(EXITと表示されたもの)を押すと、プログラムを終了します。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
class MainPanel extends Panel implements SoftKeyListener {
private Label label;
private TextBox text;
MainPanel() {
this.setSoftLabel(Frame.SOFT_KEY_1, "CLIK");
this.setSoftLabel(Frame.SOFT_KEY_2, "EXIT");
setTitle("Start IApplication");
this.setSoftKeyListener(this);
label = new Label("何か書いて!");
text = new TextBox("入力フィールド", 20, 2, TextBox.DISPLAY_ANY);
HTMLLayout layout = new HTMLLayout();
this.setLayoutManager(layout);
layout.begin(HTMLLayout.CENTER);
this.add(label);
layout.br();
this.add(text);
layout.end();
}
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;
}
}
public void softKeyReleased(int key) {}
}
※関連コンテンツ