MIDPアプリ作成講座第5回::UIの利用方法

By uchida - 09/02/20 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

UIとは

今回は携帯アプリでユーザーから入力してもらう方法をご紹介します。
UIとはボタンやテキスト入力・ラベルなど、入出力するツールの総称です。
MIDPでもそれらを簡単に作成できるようにインターフェースが用意されています。
前回ご紹介したソフトキーの利用もこのUIを利用していました。
利用するには、『javax.microedition.lcdui』パッケージをインポートする必要があります。
このパッケージには色々多彩なものが用意されていて、シンプルな機能から多機能なものまであります。
 
UIを利用する簡単なサンプルとして、利用頻度の高いテキストフィールドの利用方法をご紹介します。
 

サンプルプログラム

Midp05.java

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;


public class Midp05 extends MIDlet implements CommandListener{

	private Form mainForm;
	private TextField inputTextBox;
	private StringItem outputLabel;
	private Command endCmd = new Command("終了", Command.EXIT, -1);
	
	public Midp05(){
		mainForm = new Form("MIDletSample");
		
		//入力テキスト
		inputTextBox = new TextField("入力内容", "", 200, TextField.ANY);
		mainForm.append(inputTextBox);
		
		//ラベル
		outputLabel = new StringItem("", "");
		mainForm.append(outputLabel);
		
		//ソフトキー
		mainForm.addCommand(endCmd);
		
		mainForm.setCommandListener(this);
	}
	
	protected void startApp() {
		Display.getDisplay(this).setCurrent(mainForm);
	}
	
	public void commandAction(Command c, Displayable d) {
		if (c == endCmd) {
			notifyDestroyed();
		}
	}
	
	protected void pauseApp() {
	}
	
	protected void destroyApp(boolean unconditional) {
	}

}

プログラム解説

前回ご紹介したソフトキーの利用を少しだけ変更したプログラムになります。
変更点は

import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;

インポートを増やしたこと。

		//入力テキスト
		inputTextBox = new TextField("入力内容", "", 200, TextField.ANY);
		mainForm.append(inputTextBox);
		
		//ラベル
		outputLabel = new StringItem("", "");
		mainForm.append(outputLabel);

入力・出力フィールドを実装させたことです。

徐々にプログラムらしくなってきました。
その他のUIでもlcdui.以下をインポートして、オブジェクトを生成し、Formに実装する流れは同じになります。
メインクラスとUIを定義するクラスを分けてあげると見易くなりますし、Canvasクラスを同時使用するなどのシチュエーションでは必要になってくると思います。