科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

除了基于屏幕的组件外,你还应该掌握使用表单把多个组件组织到一个屏幕上去。这一部分将讨论Form类和可以放置到表单上去的组件。

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

关键字:

  • 评论
  • 分享微博
  • 分享邮件
7. StringItem

  一个StringItem对象是一个文本组件,但是它包含的文本串不能被用户编辑。不过一个StringItem可以有一个被应用程序修改的标签,而且StringItem的内容也可以被应用程序编辑。下面是它的构造器:

public StringItem(String label, String contents);

  你可以容易地产生一个StringItem对象:

StringItem si = new StringItem("label", "contents");

  setText()和getText( )方法用于设置和获取StringItem的内容;setLabel()和getLabel( )方法在抽象类Item中定义,,用于设置和获取StringItem的标签:

public void setText(String s);
public void setLabel(String l);
public String getText( );
public String getLabel( );

  下面代码创建一个StringItem 对象并把它放置于一个表单中。之后,该表单被置为当前screen,如图10所示。


图 10.用户不能编辑一个StringItem对象的内容

Display display = display.getDisplay(this);
StringItem si = new StringItem("String item:\n", "Hello World!");
Form form = new Form("Greetings");
form.append(si);
display.setCurrent(form);

  8. TextField

  不象StringItem,一个TextField对象是一个可编辑的文本对象,它可以放置到表单上去。但是,同TextBox一样,一个TextField有最大长度限制(存在该对象中的最大字符数)。同样,MIDP系统部分可以在最大尺寸上限定一个边界值,这可能比应用程序要求的要小。系统指定的最大值可以用方法getMaxSize()检索到。但是,如前所述,在Sun公司的MIDP参考实现部分,方法getMaxSize( )返回应用程序所要求的尺寸。

  在你的MIDlet 程序需要用户输入信息时可以使用TextField对象。一个TextField对象可以以TextField类实例的形式创建,看下面的类构造器:

public TextField(String label, String text, int maxSize, int constraints);

  该可以用于创建一个新的TextField对象,在此要指定标签,初始化内容,最大字符数及constraints值。Constraints字段用于限制用户的输入。字段constraints是TextField的静态常数,它们被与TextBox一起共享使用,其值是:TextField.ANY,TextField.EMAILADDR,TextField.NUMBER,TextField.PASSWD,TextField.PHONENUMBER和TextField.URL。记住,如果你使用constraint的值不是TextField.ANY,TextField将执行一个简单的检验来确保输入的字符都是所要求的类型。

  如果你想设置或者检索当前正使用TextField的constraints值,可以用下面的方法:

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

  MIDP系统指定的最大尺寸可以用方法getMaxSize( )检索到,并可以用setMaxSize( )来重置。

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

  你可以用方法 setString( )或getString( )来设置或者检索TextField中所有的文本内容:

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

  另外,如果你想查看当前输入的字符数,可以用size( )方法,它返回一个整数值:

public int size( );

  用来删除,插入和替换当前文本的方法同TextBox:

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( );

  下面代码显示该组件的作用。它用两个文本域(一个对应登录ID,一个对应口令字)创建一个登录表单。程序运行后,你就可以输入你的用户名和口令,如图11.


图 11.TextField的例子

Display display = Display.getDisplay(this);
TextField userName = new TextField("LoginID:", "", 10,TextField.ANY);
TextField password = new TextField("Password:", "", 10,TextField.PASSWORD);
Form form = new Form("Sign in");
form.append(userName);
form.append(password);
display.setCurrent(form);

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

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

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