ezplusプログラミング!

4.ezplusでHello World!

 ezplusアプリケーションの雛型は、次のようになります。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public final class HelloWorld extends MIDlet
{
    // コンストラクタ
    public HelloWorld() {
    }

    // アプリの開始
    public void startApp() {
    }

    // アプリの一時停止
    public void pauseApp() {
    }

    // アプリの終了
    public void destroyApp(boolean unconditional) {
    }
}
斜体文字はクラス名であり、プロジェクト名と同じになるはずです。上の雛型を元に、画面上に「Hello World!」という文字を赤で書き、ソフトキーで終了できるようなプログラムを書いてみました。以下の二つのファイルを作りましょう。
HelloWorld.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

//HelloWorld(本体)
public final class HelloWorld extends MIDlet
        implements CommandListener
{
    Command exitCommand;
    HelloWorldCanvas hwCanvas;

    // コンストラクタ
    public HelloWorld() {
        exitCommand = new Command("終了",Command.SCREEN, 0);
        hwCanvas = new HelloWorldCanvas();
    }

    // アプリの開始
    public void startApp() {
        hwCanvas.addCommand(exitCommand);
        hwCanvas.setCommandListener(this);
        Display.getDisplay(this).setCurrent(hwCanvas);
    }

    // アプリの一時停止
    public void pauseApp() {
    }

    // アプリの終了
    public void destroyApp(boolean unconditional) {
    }

    // コマンドを受け取る
    public void commandAction(Command command, Displayable screen)
    {
        if (command == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
}
HelloWorldCanvas.java
import javax.microedition.lcdui.*;

//HelloWorld(キャンバス)
final class HelloWorldCanvas extends Canvas
{
    //文字列の表示
    public void paint(Graphics g) {
        g.setColor(0x00FF0000);
        g.drawString("Hello World!", 0, 20, g.LEFT|g.BOTTOM);
    }
}
私はJavaについてはまったくの初心者ですので間違いもあるかもしれませんが、このプログラムのポイントを簡単に説明しようと思います。
…ちょっと駆け足になってしまいましたが、基本的にMIDletクラスとCanvasクラスの二つがあれば、それなりにゲームは作れるはずです。Canvasクラスでキーが押されたり離されたりすることもわかりますし、Graphicsクラスには一通りの描画機能は備わっています。※17
 なお、上で書いたプログラムはKDDI独自のプロトコルを使っていませんので、コンパイル時、「MicroEdition-Profile」の項目にはMIDP-1.0と指定すればいいでしょう。

※15 - 継承というのは、クラスの機能を引き継ぐことぐらいで捕らえておけばいいでしょう。
※16 - これら3つのメソッドは、MIDletクラスでabstract宣言されています。abstract宣言があるメソッドを持つクラスはまだ未完成なため、継承でメソッドを上書きすることによってクラスを完成させることが必要となるのです。
※17 - ただし塗りつぶし機能がありません! これは結構大きい。

≪ 3.コンパイラとエミュレータが使えるようになろう 5.終わりに ≫
ezplusプログラミング! トップ