WEB开发网
开发学院软件开发Java MIDP高级UI的使用(三) TextBox 阅读

MIDP高级UI的使用(三) TextBox

 2009-09-19 00:00:00 来源:WEB开发网   
核心提示:当我们需要再移动设备上输入数据时,TextBox 就派上用场了,MIDP高级UI的使用(三) TextBox,我们使用的TextBox 构造函数参数共有四个,TextBox textbox = new TextBox(string title, string content, string maxLength, str

当我们需要再移动设备上输入数据时,TextBox 就派上用场了,我们使用的TextBox 构造函数参数共有四个,TextBox textbox = new TextBox(string title, string content, string maxLength, string limitType) ,第一个是标题,第二个是TextBox 的初始内容,第三个是允许输入字符的最大长度,第四个是限制内型。值得注意的是:一个TextBox 必须附加一个命令,否则用户将不能激发任何行为,而陷入这个TextBox 中。

下面是一个常见的TextBox 的例子。

view plainprint?
/* 
 * To change this template, choose Tools | Templates 
 * and open the template in the editor. 
 */ 
package com.thinkrace.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.TextBox; 
import javax.microedition.lcdui.TextField; 
import javax.microedition.lcdui.Ticker; 
import javax.microedition.midlet.*; 
/** 
 * @author pengjw 
 */ 
public class TextBoxDemo extends MIDlet implements CommandListener{ 
  private Display display; 
  private ChoiceGroup types; 
  private ChoiceGroup options; 
  private Form mainForm; 
  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); 
  private static final String[] textBoxLabels ={ 
    "Any Character", "Email", "Number", "Decimal", "Phone", "URL" 
  }; 
  private static final int[] textBoxTypes ={ 
    TextField.ANY, TextField.EMAILADDR, TextField.NUMERIC, 
    TextField.DECIMAL, TextField.PHONENUMBER, TextField.URL 
  }; 
  //firstTime用来判断TextBoxDemo是否被实例化 
  private boolean firstTime; 
  public TextBoxDemo(){ 
    /** 
     * 来自文档的说明 
     * Display represents the manager of the display and input devices of the system. 
     * It includes methods for retrieving properties of the device and for requesting that objects be displayed on the device. 
     * There is exactly one instance of Display per MIDlet and the application can get 
     * a reference to that instance by calling the getDisplay() method. 
     */ 
    display = Display.getDisplay(this); 
    firstTime = true; 
  } 
  public void startApp() { 
    if(firstTime){ 
      mainForm = new Form("Select a Text Box Type"); 
      mainForm.append("select a textbox type"); 
      types = new ChoiceGroup("Choice Type", Choice.EXCLUSIVE, textBoxLabels, null); 
      mainForm.append(types); 
      String[] optionStrings = {"As Password", "Show Ticker"}; 
      options = new ChoiceGroup("Options", Choice.MULTIPLE, optionStrings, null); 
      mainForm.append(options); 
      mainForm.addCommand(CMD_EXIT); 
      mainForm.addCommand(CMD_SHOW); 
      mainForm.setCommandListener(this); 
      firstTime = false; 
    } 
    //设置当前显示的窗体 
    display.setCurrent(mainForm); 
  } 
  public void pauseApp() { 
  } 
  public void destroyApp(boolean unconditional) { 
  } 
  /** 
   * 实现CommandListener接口的抽象方法 
   * 根据不同的Command做不同的事情 
   */ 
  public void commandAction(Command c, Displayable d) { 
    if(c == CMD_EXIT){ 
      destroyApp(false); 
      notifyDestroyed(); 
    } 
    else if(c == CMD_SHOW){ 
      int Index = types.getSelectedIndex(); 
      String title = textBoxLabels[Index]; 
      int choiceType = textBoxTypes[Index]; 
      boolean[] flags = new boolean[2]; 
      /** 
       * 来自文档的说明,这个方法可以给一个bool数组赋值 
       * Query the state of a choicegroup and renturns the state of all elements in the boolean array. 
       */ 
      options.getSelectedFlags(flags); 
      if(flags[0]){ 
        choiceType = TextField.PASSWORD; 
      } 
      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 if(c == CMD_BACK){ 
      display.setCurrent(mainForm); 
    } 
  } 
} 

1 2  下一页

Tags:MIDP 高级 UI

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接