文/朱先忠编译
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);
[JAVA开发]Java手机软件图形界面API之慨述 [JAVA开发]Java手机软件图形界面API之Form相关API(2) [JAVA开发]Java手机软件图形界面API之Form相关API(1) [JAVA开发]Java手机软件图形界面API之低级GUI组件
|