学习j2me 的高级UI--TextBox
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
public class j2me_TextBox extends MIDlet implements CommandListener{
private Display display;
//
private final static Form form = new Form("J2ME的练习");
private final static Ticker ticker = new Ticker("学生姓名");
private final static List lstStudents = new List("学生",List.MULTIPLE);
private final static TextBox txtbox = new TextBox("学生","",40,TextField.ANY );
//按钮的定义
private final static Command cmdExit = new Command("退出", Command.EXIT, 1);
private final static Command cmdBack = new Command("返回", Command.BACK, 1);
private final static Command cmdAdd = new Command("添加", Command.ITEM,1);
private final static Command cmdDel = new Command("删除", Command.ITEM, 2);
private final static Command cmdOk = new Command("确定", Command.ITEM, 3);
private final static Command cmdDelAll = new Command("全部删除",Command.ITEM, 4);
//退出程序
private void exetMIDlet() {
notifyDestroyed();
}
//选定删除学生
private void delStutents() {
//获取列表大小
int count = lstStudents.size();
//定义列表大小的列表
boolean b[] = new boolean[count];
//将列表中的boolean 载入 b[]
int selcout = lstStudents.getSelectedFlags(b);
if(selcout>0)
for (int i = 0; i < count; i++) {
if (b[i]) {
System.out.println("/t"+lstStudents.getString(i));
lstStudents.delete(i);
}
}
}
//按下了添加按钮 添加学生
private void addStudents() {
txtbox.setTicker(new Ticker("学生姓名输入区域"));
txtbox.setTitle("请输入学生姓名");
txtbox.setString(null);
display.setCurrent(txtbox);
}
//点击确定后添加到txtbox
private void cmdAddStudents() {
try {
int len = txtbox.getString().length();
lstStudents.append(txtbox.getString() + "(长度:"+ len + ")", null);
display.setCurrent(lstStudents);
} catch (Exception e) {
// TODO: handle exception
//lstStudents.setTicker(new Alert("错误"));
}
}
//实现按钮监听
public void commandAction(Command c, Displayable d) {
// TODO Auto-generated method stub
//按下了删除按钮
if (c == cmdExit) {
exetMIDlet();
}
//如果在主屏幕
if(d.equals(lstStudents))
{
if(c == cmdAdd)//按下了添加按钮
{
addStudents();
}else if(c == cmdDel){//按下了退出按钮
delStutents();
}else if (c == cmdDelAll) {
lstStudents.deleteAll();
}
}else if (d.equals(txtbox)) {//如果在txtbox 的screen
if (c == cmdOk) {//点击确定,即添加一个姓名到txtbox
cmdAddStudents();
}else if (c == cmdBack) {//返回到主屏幕
display.setCurrent(lstStudents);
}
}
}
public j2me_TextBox() {
// TODO Auto-generated constructor stub
display = Display.getDisplay(this);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
form.append("输入学生姓名");
form.addCommand(cmdExit);
form.addCommand(cmdAdd);
form.addCommand(cmdDel);
form.setCommandListener(this);
//String xString = new String(display.isColor()?"T","T");
lstStudents.addCommand(cmdAdd);//添加按钮
lstStudents.addCommand(cmdDel);//删除按钮
lstStudents.addCommand(cmdExit);//退出按钮
lstStudents.addCommand(cmdDelAll);//全部删除按钮
lstStudents.setCommandListener(this);
txtbox.addCommand(cmdOk);//在txtbox 屏幕,添加按钮
txtbox.addCommand(cmdBack);//在txtbox 屏幕,取消按钮
txtbox.setCommandListener(this);
display.setCurrent(lstStudents);
}
}