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クラスを同時使用するなどのシチュエーションでは必要になってくると思います。