iアプリの作り方
基本部分及び画像表示

では基本画面からです。2つのクラスを作ります。
1.Pekman.java IApplicationを継承した最初に呼ばれるクラスです。 PekmanMainを呼び出すことだけをします。
2.PekmanMain.java メインのクラスです。Canvasクラスのサブクラスです。

Pekman.javaは非常に簡単な内容です。


import com.nttdocomo.ui.IApplication;
import com.nttdocomo.ui.Display;

public class Pekman extends IApplication{
	public void start() {
		PekmanMain pekmanMain = new PekmanMain();
		Display.setCurrent(pekmanMain);
	}
}

ここではiアプリの基盤となるIApplicationを継承し、実際に処理を行うCanvas クラスを継承したPekmanMainクラスを作成して画面にセットしています。

PekmanMain.java

次にPekmanMainの方ですが、今回は壁用の画像を読みこみ、それを表示するだけのものを作ります。
画像の読みこみについては、


	private Image kabe;

	MediaImage mi = MediaManager.getImage("resource:///gif/kabe.gif");

	try{
		mi.use();
	}catch(ConnectionException e){
	}catch(UIException e){
	}

	kabe = mi.getImage();

で行います。
また壁を表示するために、まず背景を白色で塗りつぶしてから画像を表示します。 背景を白く塗りつぶすためには、


	g.setColor(Graphics.getColorOfName(Graphics.WHITE));
	g.fillRect(0, 0, getWidth(), getHeight());

を使います。色の指定方法も覚えておいて下さい。

最後に、アプリケーションの終了処理です。今回はソフトキー1に「Exit」という コマンドを付けて終了させることができるようにします。
ソフトキーのラベルの指定方法は、

setSoftLabel(SOFT_KEY_1, "Exit");

でできます。また実際の終了手順は、


	public void processEvent(int type, int param) {
		if(type == Display.KEY_PRESSED_EVENT) {
			if(param == Display.KEY_SOFT1) {
				IApplication.getCurrentApp().terminate();
			}
		}
	}

とします。System.exit()ではなく、IApplicationクラスのメソッドであるterminate() を呼ぶところを間違えないようにして下さい。


完成後のソースは、

Pekman.java

import com.nttdocomo.ui.IApplication;
import com.nttdocomo.ui.Display;

public class Pekman extends IApplication{
	public void start() {
		PekmanMain pekmanMain = new PekmanMain();
		Display.setCurrent(pekmanMain);
	}
}

PekmanMain.java

import com.nttdocomo.ui.IApplication;
import com.nttdocomo.ui.Display;
import com.nttdocomo.ui.Graphics;
import com.nttdocomo.ui.Canvas;
import com.nttdocomo.ui.MediaManager;
import com.nttdocomo.ui.MediaImage;
import com.nttdocomo.ui.Image;
import com.nttdocomo.io.ConnectionException;
import com.nttdocomo.ui.UIException;

public class PekmanMain extends Canvas{
	private Image kabe;

	PekmanMain(){
		setSoftLabel(SOFT_KEY_1, "Exit");

		MediaImage mi = MediaManager.getImage("resource:///gif/kabe.gif");

		try{
			mi.use();
		}catch(ConnectionException e){
		}catch(UIException e){
		}

		kabe = mi.getImage();
	}

	public void paint(Graphics g){
		if (kabe != null){
			g.lock();
			g.setColor(Graphics.getColorOfName(Graphics.WHITE));
			g.fillRect(0, 0, getWidth(), getHeight());
			for (int i = 0 ; i < 30 ; i++){
				g.drawImage(kabe, i * 4, 0);
				g.drawImage(kabe, i * 4, 116);
				g.drawImage(kabe, 0, i * 4);
				g.drawImage(kabe, 116, i * 4);
			}
			g.unlock(true);
		}
	}

	public void processEvent(int type, int param) {
		if(type == Display.KEY_PRESSED_EVENT) {
			if(param == Display.KEY_SOFT1) {
				IApplication.getCurrentApp().terminate();
			}
		}
	}
}

となります。また画像データとして、

kabe.gif

を使いました。
また、JAMファイルは書きのようになります。

Pekman.jam

AppName = Pekman
AppClass = Pekman
AppVer = 1.0
PackageURL = c:\iAppli\Pekman\pre\Pekman.jar
AppSize = 1769
LastModified = Fri, 25 Mar 2001 02:43:00

では実際に実行してみまと、下記のようになりました。



表紙へ