public static Display getDisplay(MIDlet c);
This is typically done in the startApp( ) method of a MIDlet, as follows:
public class MyMIDlet extends MIDlet {
Display display = null;
public MyMIDlet( ) {}
public void startApp( ) {
display = Display.getDisplay(this);
}
// 其它方法
}
public void setCurrent(Displayable d);
public void setCurrent(Alert alert, Displayable d);
public Displayable getCurrent( );
public void boolean inColor( );
public int numColors( );
图1.包lcdui中的主要类间的类关系图
然而,Screen仅是一个有其自身一些功能的抽象类。每个Screen可以有两个额外的特性:标题和ticker。标题是显示在screen 内容之上的一个字符串。Ticker是一个图形组件,它显示在标题上方,可用于横向卷动显示给用户的信息。二者皆是可选的,尽管标题串有一个缺省的内容。如果省略了ticker,则一点不显示并把相应的空间让给screen。后面我们要讨论Ticker组件。但是,图 2显示了Screen 对象的标题和ticker 属性之间的相对位置关系。
图 2.屏幕上的标题和ticker
Screen 类的下列方法可以分别用于设置和检索标题和ticker。public void setTitle(String title);
public String getTitle( );
public void setTicker(Ticker ticker);
public Ticker getTicker( );
3. Ticker
Ticker类可用横跨显示区显示一串连续的文本。它可以依附于一个或多个前面已述的screen上:Alert,TextBox,List和Form。可以用Ticker构造器创建一个ticker对象:public Ticker(String str);
你可以用下面方法存取ticker中的文本串:public String getString( );
public void setString(String s);
一旦生成一个ticker,就可以用该screen的setTicker( )方法把它依附于该screen。如,下列代码生成一个List screen并把一个ticker依附于它:Display display = Display.getDisplay( );
List list = new List("Trade Stocks", Choice.EXCLUSIVE);
list.append("Buy", null);
list.append("Sell", null);
list.setTicker(new Ticker("Welcome to my discount broker"));
display.setCurrent(list);
图 3 显示了ticker的外观,它处于当前显示的List组件的上方。
图 3.一个ticker的例子
在使用ticker时要注意以下几点:
·没有提供启动和停止该ticker的方法函数。
·该ticker字符串连续卷动。也就是说,当该字符串在显示屏上显示结束,该ticker接着在该串的起始位置开始显示。在串的结尾加上一些空格可能有助于使得字符串的显示看上去不是连接在一起的。
·卷动的方向和速度由MIDP系统的实现来决定。
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地址 |
TextBox t=new TextBox("Tel","",12,TextField.PHONENUMBER|TextField.PASSWD);
public int getConstraints( );
public void setConstrants(int c);
public int getMaxSize( );
public void setMaxSize(int size);
public String getString( );
public void setString(String s);
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 tb = new TextBox("TextBox", "This is a textbox", 20, TextField.ANY);
Display display = Display.getDisplay(this);
display.setCurrent(tb);
图 4.display和screen之间的关系<
零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。