科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Java手机软件图形界面API之screen相关API

Java手机软件图形界面API之screen相关API

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

看过一个关于screen的例子后,你应该会问起:你是如何来组织这些screen的?在它们之间是如何导航的?你是如何管理显示及输入设备的?

作者:朱先忠编译 来源:天极网 2007年11月22日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
 4. TextBox

  TextBox对象是一个允许用户输入和编辑文本的screen。在MIDlet程序需要用户输入诸如姓名,电话号码,e-mail地址或者口令字时,你可以选用TextBox控件。你可以通过指定四个参数给TextBox的构造器来创建一个TextBox 对象:

public TextBox(String title, String text, int maxSize, int constraints);

  title被复用作该screen的标题,参数text和maxSize用于指定初始(缺省的)文本和该文本框的最大尺寸。最后,constraints参数可用于限制用户的输入。Constraints取值为TextBox类的静态常整型常量,由TextField和TextBox类共享使用,如下:

常量 说明
TextField.ANY 允许用户输入任何字符
TextField.EMAILADDR 必须输入一个e-mail地址
TextField.NUMBER 必须输入一个整型值
TextField.PASSWD 文本以*蒙盖,因此输入的文本是不可见的
TextField.PHONENUMBER 必须输入一个电话号码
TextField.URL 必须输入一个URL地址

  如果你给constraints的指定值不是TextField.ANY,系统将执行校验以确保输入满足要求。

  注意:约束值TextField.PASSWD可以和任何其它约束值值通过OR(|)运算符相结合。如,如果你要产生一个TextBox,并限制输入为电话号码,但又想隐藏输入数据,可以如下创建对象:

TextBox t=new TextBox("Tel","",12,TextField.PHONENUMBER|TextField.PASSWD);

  如果你想检索当前活动的TextBox的约束值,可以如下:

public int getConstraints( );
public void setConstrants(int c);

  另外应该指出的是,一个文本框有一个容量限定(即最大字符数)。但是,每一个MIDP系统实现都将对该最大容量设置一个边界值,它可能比应用程序要求的尺寸要小。系统允许的最大尺寸可以用方法getMaxSize( )来检索,也可应用方法setMaxSize( )来复位。

public int getMaxSize( );
public void setMaxSize(int size);

  一个书写良好的MIDP应用程序应该总是比较它要求的大小和当前的最大值。

  在当前MIDP的来自于Sun Microsystems的参考实现中,getMaxSize( )方法总是返回MIDlet要求的尺寸。但是不要因此而放弃比较的习惯。
你还可以通过使用方法setString( )和getString( )来设置或者检索TextBox对象的完整的文本:

public String getString( );
public void setString(String s);

  另外,如果你要知道输入的字符数,可以用方法size( ):

public int size( );

  你还可以使用下列方法对文本框进行删除,插入,替换等等:

public void delete(int offset, int length);
public void insert(char[] data, int offset, int length, int position);
public void insert(String src, int position);
public void setChars(char[] data, int offset, int length);

  最后,要确定插入点位置,可以用下面方法:

public int getCaretPosition( );

  下面的小例创建一个文本框,标签为"TextBox",初始文本值为"This is a text box",最大尺寸为20个字符,可以输入任何字符。

TextBox tb = new TextBox("TextBox", "This is a textbox", 20, TextField.ANY);
Display display = Display.getDisplay(this);
display.setCurrent(tb);

  如果你写一个完整的MIDlet程序并在模拟器中运行,会看到如图 4所示的效果。注意,如果要显示的文本长于一屏的,系统将允许用户卷动查看并进行编辑-具体依赖于系统的实现。


图 4.display和screen之间的关系
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章