ソースコードのポイントを整理する
今回のサンプルでは、この他にソフトキーを押したときのイベント処理なども組み込まれているのでもう少し複雑ですが、基本はこのような形になります。では、ポイントをまとめましょう。
1.2つのパッケージをインポートする
ここでは、2つのimport文が最初に書かれています。javax.microedition.midletパッケージは、プログラム本体である「MIDlet」というクラスが用意されているところです。また、javax.microedition.lcduiパッケージは、GUIコンポーネント関係が用意されているところです。プログラムを作成する場合には、最低限この2つのパッケージはimportしておくのが基本、と考えてください。
2.クラスは、MIDletを継承する
MIDPのプログラムは、必ず「MIDlet」クラスを継承して作成します。MIDlet(ミドレット)は、MIDPにおけるアプレットに相当するもので、MIDP環境で実行するプログラムの土台です。このMIDletのサブクラスとして作成することから、MIDPのプログラムそのものもMIDletと呼ばれたりします。
3.プログラムの動作に関する3つのメソッド
このクラスでは、コンストラクタの他に「startApp」「pauseApp」「destroyApp」の3つのメソッドが用意されています。これらが、MIDletに用意されているもっとも基本となるメソッドです。これらで、プログラムの開始・一時停止・終了時の処理を作成します。
このMIDletクラスの基本形は、MIDlet作成のために最初に理解しておくべき事柄です。まずはこの基本形を丸暗記する!ぐらいに考えておきましょう。
DisplayとGUIアイテム
クラスの基本形がわかったところで、続いて実際にクラス内で使われている機能について説明をしていきましょう。まずは「画面の表示」に関することからです。
MIDletでは、画面の表示は「Display」というクラスによって管理されています。これ自体が画面に表示されるわけではなく、画面にどういうものを表示するかを設定するためのものです。ここでは冒頭に、
private Display display;
このようにしてDisplayをフィールドに保管するようにしていますね。このDisplayインスタンスは、コンストラクタで以下のように取得しています。
display = Display.getDisplay(this);
Display.getDisplayにより、引数に指定されたMIDletで使用されているDisplayインスタンスが取得できます。これで、後はこのdisplayフィールドを使い、画面に表示したいオブジェクトを設定すればいいわけです。
今回は、テキストの入力・編集を可能にする「TextBox」というアイテムを画面に表示しています。これはstartAppメソッドで以下のようにインスタンスを生成しています。
TextBox t = new TextBox("Hello", "Hello, World!", 256, 0);
引数が4つありますが、これらはそれぞれ「タイトル」「表示テキスト」「最大文字数」「入力の制約ルールを示す値」を指定します。最後の「入力の制約ルール」というのがわかりにくいでしょうが、これは例えば「数字だけを入力する」というように何らかの制限をかけるためのものと考えてください。特に必要がなければ、ゼロでOKです。
こうして作成されたTextBoxインスタンスを、画面に表示します。これは、Displayに用意されているメソッドを使います。
display.setCurrent(t);
この「setCurrent」は、引数に指定したオブジェクトを画面に表示する働きをします。これにより、作成したTextBoxが表示されていた、というわけです。