1、PhoneBookVisualMIDlet,位置采用默认位置,单击完成。创建启动画面:在流视图环境下,从组件面板的可显示项中拖动一个闪屏组件到流设计窗口,闪屏用于显示软件的版本等相关信息。为了设置导航,拖动“移动设备的“已启动至splashScreen项。双击splashScreen组件标题,进入“屏幕设计器界面,双击splashScreen组件屏幕中的“,打开图像对话框。单击“添加按钮,添加默认名为image1的资源,单击右侧的“浏览按钮,选择一幅png图片作为闪屏图片,还可以设置图片的属性。单击VMD设计器的源按钮,切换到代码编辑器窗口,在getSplashScreen方法的最后添加如下代
2、码来猜去软键盘:SplashScreen.removeCommand(SplashScreen.DISMISS_COMMAND);点击运行。代码解析:Display代表了系统显示屏幕和输入设备的管理器,用来获取设备属性的方法以及设备建议应该显示的对象。Displayable类是一个抽象类,它的子类都具有显示在屏幕上的能力,MIDP用户界面的核心是Displayable对象,它封装了用于获取用户输入的设备相关图形,同一时间只能有一个Displayable对象对用户可见,此时用户只能与此Displayable对象进行交互,对象间的调用显示通常是通过命令按钮触发事件来完成。MIDlet是基于事件的应
3、用程序,MIDlet中执行的所有程序都是为了响应应用程序发送给MIDlet的事件被调用的,应用程序通过获得MIDlet的Display进行用户界面的管理,负责与应用程序管理器进行交互,并且用Displayable的子类Screen,Canvas代表可以显示的用户界面。MIDlet通过调用Display类的setCurrent()方法,可以将Displayable类的派生类的实例设置在屏幕上,调用getCurrent()方法来获取Displayable类的派生类的实例消息。MIDlet可以通过调用setCurrentnull请求最小化,也可以通过调用setCurrentxx!=null请求最大化
4、。项目运行后,startMIDlet()方法通过调用switchDisplayable()方法来决定屏幕的显示对象,switchDisplayable()方法代码如下:publicvoidswitchDisplayable(Alertalert,DisplayablenextDisplayable)Displaydisplay=getDisplay();If(alert=null)display.setCurrent(nextDisplayable);elsedisplay.setCurrent(alert,nextDisplayable);可以看出,MIDlet程序首先生成Display实例
5、,然后通过display.setCurrent(nextDisplayable)方法将Displayable对象SplashScreen显示在屏幕上,通过点击Next或Back按钮,切换屏幕显示的内容。案例设计通讯录设计:打开项目,拖动一个列表、一个表单和一个文本框组件到流设计窗口。双击添加的list对象标题,设置实例名为menuList,在属性窗口中设置标题为主菜单,类型为IMPLICIT。从组件面板的元素中拖动5个列表元素到list,在属性窗口分别设置它们的如下属性:字符串属性为浏览、添加、查找、删除和帮助,字体属性为menufont,具体设置方法是打开字体对话框,设置字体,并分别设置合适
6、的图像属性,方法与设置SplashScreen中图像的属性类似,再拖入一个退出按钮。双击form对象标题,设置实例名为addContactForm,在属性窗口中设置标题为添加联系人,从组件面板的项中拖动两个文本字段至屏幕,标签分别设置为“姓名和“移动,重命名两个文本字段为nameField和mobileField。设置两个文本字段的文本属性为空,设置mobileField的输入限制设置为号码。从组件面板的项中拖动一个选项组至屏幕,标签设置为空,类型设置为MULTIPLE,重命名该项为choice。拖动一个选择元素至choice,设置字符串为“详细信息,其余缺省设置,该组件的作用是如果用户勾选给
7、项,那么添加两个文本字段:固定和电子邮件。拖动一个后退按钮和一个确定按钮到form,设置确定按钮的标签为保存。双击TextBox对象的标题,设置实例名为helpTextBox,在属性窗口中设置标题为帮助,设置最大大小属性为200,拖动一个退后按钮到textBox。在流设计器中,拖动每个用户界面的元素导航至目标界面。运行项目。代码解析:TextBox类的作用是在现实设备上构建一个文本编辑区域,用户可以子啊该区域编辑和显示文本信息,TextBox类的构造方法是:TextBox(Stringtitle,Stringtext,intmaxSize,intconstraints),Title为TextB
8、ox的标题,text为初始文本内容,maxSize为允许输入字符的最大长度,constraints为输入限制,其中,输入限制通过构造方法中的参数constraints来实现。List类用于显示一组可选择的字符串列表。List类的构造方法为:publicList(Stringtitle,intlistType,StringstringElements,ImageimageElements),title为List的标题,listType为列表类型,stringElements为列表字符串数组,imageElements为列表图片数组。List组件支持三种类型的项目选择:List.EXCLUSIVE
9、,List.MULTIPLE,List.IMPLICIT.List类实现Choice接口,在用户从一个IMPLICIT列表中选择项目时,列表使用定义为List.SELECT_COMMAND的特殊命令对象通知它的监听器,这个对象在新的项目被选择的时候被作为第一个参数传递到commandAction方法。Form类是Item子类的容器,在Form中可以添加、删除及设置Item子类。添加到Form中的Item子对象在Form中的布局由Item子对象的布局参数决定。Form的构造方法为:Form(Stringtitle,Itemitems),Title为Form的标题,items为Form中的元素,在
10、Form中,每个Item元素都有一个索引值,且索引值是连续的,第一个Item元素的索引值为0,最后一个item元素的索引值为size()-1.每一个Item的子类的实体,在同一时刻只能属于同一个容器,否那么在加入其它容器是将产生IIIegalStateException异常。TextField类用于在Form中显示一行文本输入框,TextField类的构造方法是:publicTextField(Stringlabel,Stringtext,intmaxSize,intconstraints)其参数含义与TextBox类似。ChoiceGroup与List类似,用于构造一组选择列表,Choice
11、Group类的构造方法是:publicChoiceGroup(Stringlabel,intchoiceType,StringstringElements,ImageimageElements),ChoiceGroup类没有Choice.IMPLICIT选择类型,但添加了Choice.POPUP选择类型。下面开始修改AddContactForm表单设计,实现用户勾选“详细信息复选框时在表单中添加固定和电子邮件文本输入框,取消勾选“详细信息复选框时,表单中只输入联系人姓名和移动信息,首先在程序开始部分为固定电话和电子邮件是两个TextField组件作如下定义:privateTextFieldphoneField=newTextField(“固定,null,32,TextField.PHONENUMBER);privateTextFieldemailField=newTextField(电“子邮箱,null,32,TextField.EMAILADDR);并定义以下两个变量用于保存上述变量在表单中的索引值,privateintphoneIndex;privateintemailIndex;为了实现choice状态的监听,PhoneBookV