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.終わりに ≫ |