textboxdemo.java

来自「j2me学习 简单例子」· Java 代码 · 共 141 行

JAVA
141
字号
package example.demoseniorui.textbox;

import javax.microedition.lcdui.Choice;
import javax.microedition.lcdui.ChoiceGroup;
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.Image;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.lcdui.Ticker;
import javax.microedition.midlet.MIDlet;

/**
 * <p>J2ME TextBox Demo</p>
 * 
 * @author 刘光辉
 * @version 2009.01.23
 */
public class TextBoxDemo extends MIDlet implements CommandListener {

	private static final Command CMD_EXIT = new Command("Exit",Command.EXIT,1);
	private static final Command CMD_BACK = new Command("Back",Command.BACK,1);
	private static final Command CMD_SHOW = new Command("Show",Command.SCREEN,1);
	
	static final String[] textBoxLabels = 
		{"Any Character","E-Mail","Number","Decimal","Phone","Url"};
	static final int[] textBoxTypes = 
		{
			TextField.ANY,TextField.EMAILADDR,TextField.NUMERIC,
			TextField.DECIMAL,TextField.PHONENUMBER,TextField.URL
		};
	static final String[] optionStrings = {"An Password","Show Ticker"};
	
	private Display display;
	private ChoiceGroup types;
	private ChoiceGroup options;
	private Form mainForm;
	private boolean firstTime;
	
	/**
	 * <p>TextBoxDemo的构造函数</p>
	 */
	public TextBoxDemo() {
		display = Display.getDisplay(this);
		firstTime = true;
	}

	/**
	 * <p>启动程序,使MIDlet处于active状态</p>
	 * <p>在这个方法里声明了一个Form,追加了两个ChoiceGroup对象,并设置为当前画面</p>
	 * @see javax.microedition.midlet.MIDlet#startApp()
	 */
	protected void startApp(){
		if(firstTime){
			//声明一个Form对象
			mainForm = new Form("select a Text Box Type");
//			mainForm.append("select a Text Box Type");
			
			Image[] imageArray = null;

			//声明一个ChoiceGroup对象
			types = new ChoiceGroup("Choose type",Choice.EXCLUSIVE,textBoxLabels,imageArray);
			mainForm.append(types);
			//声明一个ChoiceGroup对象
			options = new ChoiceGroup("Options",Choice.MULTIPLE,optionStrings,null);
			mainForm.append(options);
			
			mainForm.addCommand(CMD_SHOW);
			mainForm.addCommand(CMD_EXIT);
			mainForm.setCommandListener(this);
			
			firstTime = false;
		}
		display.setCurrent(mainForm);
	}

	/**
	 * <p>暂停程序,使MIDlet处于pause状态</p>
	 * @see javax.microedition.midlet.MIDlet#pauseApp()
	 */
	protected void pauseApp() {
	}

	/**
	 * <p>销毁程序,使MIDlet处于destroyed状态</p>
	 * 
	 * @param boolean unconditional 
	 * <ul>true 释放资源保存数据进入destroyed状态,false 抛出异常保持当前状态</ul>
	 * @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
	 */
	protected void destroyApp(boolean unconditional) {
	}

	/**
	 * <p>命令处理函数,实现commandListener接口</p>
	 * @param Command cmd 命令对象
	 * @param Displayable d 被放置到显示屏显示的对象
	 */
	public void commandAction(Command cmd, Displayable d) {
		if(cmd == CMD_EXIT){
			destroyApp(false);
			notifyDestroyed();
		}else if(cmd == CMD_SHOW){
			
			int index = types.getSelectedIndex();
			//取得types选择的label
			String title = textBoxLabels[index];
			//取得types选择的type
			int choiceType = textBoxTypes[index];
			
			boolean[] flags = new boolean[2];
			//取得options所有元素的标志
			options.getSelectedFlags(flags);
			
			
			if(flags[0]){
				//设置文本类型为password
				choiceType = TextField.PASSWORD;
			}
			//什么一个TextBox对象
			TextBox textBox = new TextBox(title,"",50,choiceType);
			
			if(flags[1]){
				//声明声音提示
				textBox.setTicker(new Ticker("TextBox:"+title));
			}
			
			textBox.addCommand(CMD_BACK);
			textBox.setCommandListener(this);
			display.setCurrent(textBox);
			
		}else{
			display.setCurrent(mainForm);
		}
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?