import javax.microedition.midlet.*; |
HelloWorld.java |
import javax.microedition.midlet.*; |
HelloWorldCanvas.java |
import javax.microedition.lcdui.*; |
import
のある行はおまじないのように入れて置きます。C/C++がわかる人は、#include
と同じようなものと思っておけば間違いないです。final class HelloWorld extends MIDlet
とある行がクラスの宣言を行っている場所です。MIDlet
という名前のクラスを継承※15したHelloWorld
というクラスを作るぞって意味です。final
という修飾子は、「これ以上継承するな」という意味にあたりますが、別に知らなくても何とかなるかも知れません。implements CommandListener
という行は、クラス宣言に続いてインターフェースという機能をクラスに追加します。インターフェースと継承は似ているかもしれませんが、このインターフェースはどんなクラスにもくっつくことが出来ます。継承は下から順に積み上げていくというイメージですが、インターフェースは横から付け加えるイメージでしょうか。いずれにしてもC/C++にはない機能で、結構便利なのではないかと思われます。この例ではCommandListener
という、ソフトキーで入力されたコマンドを受け取る機能を追加してくれます。new
で初期化しているのです。まぁわからなくても上のようにnew
で初期化すればいいって覚えておけばいいでしょう。this
という自分自身(ここではHelloWorld
クラス)に設定します。その後、表示画面をキャンパスにするという命令を与えます。これでHelloWorldCanvas
の内容が表に現れるというわけです。MIDlet
クラスを継承した新しいクラスは、startApp
、pauseApp
、destroyApp
の3つのメソッドを上書き※16しなくてはいけません。アプリの一時停止、アプリの終了では、特に処理することはありませんが、書いておかないとエラーになります。上の通りに書いておきましょう。implements CommandListener
をつけたクラスは、コマンドを受け取るcommandAction
メソッドを追加しなければなりません。入力されたコマンドが終了コマンドだったら終了する処理を書いています。HelloWorldCanvas
クラスの親、Canvas
クラスは、おそらくほぼ必ず使うクラスとなります。Canvas
クラスを継承したクラスは、paint
メソッドを書かなければいけません。このメソッドにやってくるGraphics
オブジェクトを使って文字を描画したり、線を引いたりすることが出来るのです。0x00RRGGBB
となります。文字列の描画は、「座標(0,20)の位置が文字列の左下となるように、"Hello World!"という文字列を描画せよ」という意味です。MIDP-1.0
と指定すればいいでしょう。MIDlet
クラスでabstract
宣言されています。abstract
宣言があるメソッドを持つクラスはまだ未完成なため、継承でメソッドを上書きすることによってクラスを完成させることが必要となるのです。≪ 3.コンパイラとエミュレータが使えるようになろう | 5.終わりに ≫ |