业精于勤,荒于嬉
全部博文(763)
分类: Java
2008-10-25 10:31:11
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中的主要类间的类关系图 |
图 2.屏幕上的标题和ticker |
public void setTitle(String title); public String getTitle( ); public void setTicker(Ticker ticker); public Ticker getTicker( ); |
public Ticker(String str); |
public String getString( ); public void setString(String s); |
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的例子 |
在使用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); |
常量 | 说明 |
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之间的关系 |
public Alert(String title); public Alert(String title,String alertText,Image alertImage,AlertType alertType); |
public int getDefaultTimeout( ); public int getTimeout( ); public void setTimeout(int t); |
Alert alert = new Alert("title"); alert.setTimeout(4000); |
alert.setTimeout(Alert.FOREVER); |
public Alert(String title, String messageString, Image alertImage,lertType alertType); |
public Image getImage( ); public String getString( ); public AlertType getType( ); public void setImage(Image img); public void setString(String str); public void setType(AlertType type); |
TextBox tb = new TextBox("text box","Welcome to MIDP GUI Programming", 40, TextField.ANY); Alert timedAlert = new Alert("Confirmation","Your message has been sent!", null, AlertType.CONFIRMATION); TimedAlert.setTimeout(5000); Display display = Display.getDisplay(this); Display.setCurrent(timedAlert, tb); |
图 5.一个定时alert的例子 |
TextBox tb = new TextBox("text box","Welcome to MIDP Programming", 40,Textfield.ANY); Alert modalAert = new Alert("Error", "Network error. Please try again later.", null, AlertType.ERROR); modalAlert.setTimeout(Alert.FOREVER); Display display = Display.getDisplay(this); display.setCurrent(modalAlert, tb); |
图 6.一个模式alert的例子 6. List 一个list是一个包含一系列可选项的screen。List和ChoiceGroup具有Choice 接口定义的一些共同的特性。用户可以通过一项项地移动与该list交互。注意,高级API交互并不激发任何回馈到应用程序的事件。这仅在作出一选择时发生。 可用List类来创建List的实例:
第一个构造器用来创建一个空的list,不过可以指定标题和list类型。针对第二个参数,有3种类型列表可以选择: IMPLICIT, EXCLUSIVE和MULTIPLE。这些选项能被使用List类实现的Choice接口提供的常数来指定: ·EXCLUSIVE类型的list,一次仅有一个选项,与AWT中的一组单选按钮很相似。 ·IMPLICIT类型的list,提供一种互斥的选项,此时焦点选项是隐式选择的,很象一个下拉菜单。 ·MULTIPLE类型的list,一次可以提供任意数目的选项,以一系列复选框形式显示。 例如,下面语句生成一个EXCLUSIVE类型的list,标题是"Choose one"。
一旦你创造了一空列表,你就能插入,添加或在列表中进行选择替换。每个选择都有在列表中代表它的位置的一个整数索引。第一选择从0开始,直到的当前大小减一为止。为此,List类提供了下面一些方法:
注意选择由一个文本串和一可选的图像组成。例如,下面介绍如何把一些选择添加到前面的列表中去。注意append( )方法返回与该选项相关的已经传入的索引值,以备后面还需要它。
你能使用下列方法删除列表的任何索引:
如果你想要检索对应任何索引值的文本元素或图像元素,下列方法可以实现:
如果你想要设定,取消设定,或在列表检索当前被选择项的索引,或查询任何索引以判断是否它是当前被选中的,可以使用下列方法:
最后,你可以使用一个布尔数组来设置整个列表的选定状态。这是典型的选项标志法,可以用下面的方法来存取。注意getSelectedFlags( )方法并不返回一个布尔数组,而是作修改(并返回以整数形式返回被选择的元素的数目);这是一种典型的优化技术,以防止在每次调用该方法时新建一个数组。该数组至少应该有同列表中元素数目一样的长度。如果更长了,超出相应长度的元素置为false。
对MULTIPLE型列表,setSelectedFlags( )方法设置列表中每个元素的状态。对EXCLUSIVE 型或者IMPLICIT型列表,在布尔数组中,只有一个元素被设置为true;如果没有元素为true,那么第一元素将被选择。如果有两个或者多个元素为true,系统将选择第一个为true的元素并选中它。 让我们看一些列表组件的例子。下面代码生成一个EXCLUSIVE型列表:
在该列表中,仅可选择一选项,见图7。
如果你把列表类型设为IMPLICIT,结果将如图 8所示。注意这里的单选按钮已经去掉。
还是与EXCLUSIVE 类型一样,在该列表中,仅可选择一项;但是,焦点选项是隐式选择好的。第三种类型MULTIPLE的情况,如图 9示。
如我们以前提及,在一个list中的选项由索引所参照,它们是0到size( ) - 1间的连续整数。0指向第一个选项,size( ) - 1指向最后一个选项。例如,可以如图8的方法来删除"Move To"选项:
在此,我们使用第二个列表构造器来创建一列表,指定它的标题,列表的类型,一个字符串和一个图像串用作它的初始内容。下列代码创造一个有两个初始的选择但没有图象的列表:
在列表的元素的个数由传递给构造器的数组stringElements(不能为null)的长度所决定。但是,数组imageElements可以是null。然而,如果该数组不是null,它的长度必须与stringElements一致。 |