第6章MIDP高级界面编程.ppt

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 MIDP 高级界面编程 郝玉龙 E_mail:haoyulongsd@163.com 6.1 LCDUI体系结构概述 6.2高级用户界面编程基础 6.3 Command处理机制 6.4 Screen对象 6.5 List组件 6.6 TextBox组件 6.7 Alert组件 6.8 Form类 小结 6.1 LCDUI体系结构概述 为适应种类繁多的移动信息设备,CLDC本身没有定义任何GUI功能,而是由J2ME将所有与界面相关的类库都定义在简表(例如MIDP)中,这样在更大程度上包含了保证了界面类库的适应性。 6.1.1 LCDUI 工作模型 第一步:为了在MIDP 设备上显示信息,需要取得设备的显示屏幕。Display对象代表的是移动设备显示屏幕,每个MIDlet 都有且仅有 Display 对象的一个实例。Display 对象实质上是设备显示屏的管理程序,它控制在设备上显示什么内容。在J2ME程序中只有一个Display的引用,通过静态方法Display.getDisplay(MIDlet midlet)得到。 第二步:通过Display的引用程序开发人员可以得到当前设备屏幕的一些信息,比如色彩之类,但是最常用的方法是通过Display的setCurrent()方法将抽象屏幕对象绑定到当前设备屏幕上来显示。图形用户界面开发中更多的工作是实现抽象屏幕对象,由抽象屏幕对象封装和管理实现程序与用户之间交互的图形界面组件如文本框、选择框列表等。当使用高级图形API时,抽象屏幕由javax.microedition.lcdui.Screen对象代表,当使用低级屏幕API时,,抽象屏幕由javax.microedition.lcdui.canvas对象代表。应用程序可以包含几个抽象屏幕对象,不过某一时间只能在显示器上显示一个屏幕(或者说只有一个当前屏幕)。 为了实现可移植性,高层API 进行了高度抽象,在界面外观上提供的控制很少。例如,不允许定义高层组件的视觉外观(形状、颜色或字体),与组件之间的大多数交互都被实现封装,即由底层实现而不是应用程序完成对设备硬件和本地用户界面类型的适应工作。 因此,如果使用高级API,那么用户界面就具有较高移植性。但是高级API提供的组件都会由底层的虚拟机直接映射到该设备的本地用户界面,所以程序开发人员无法决定最终显示到设备屏幕上时组件的颜色、字型和外观,因为这些细节都是由系统决定,程序开发人员对画面的控制程度相对较低。另外,采用高级API开发的用户界面,与用户的交互都会遵循该移动设备既有用户界面的操作方式。所以,采用高级用户界面开发的应用,如果发布到不同类型的移动设备上,用户界面的外观和交互方式出现一些差异是很正常的。 使用低级API开发应用就相对复杂。低层API提供很少的抽象。使用它们的应用程序需要精确地布局和控制图形元素,同时还需要访问低层输入事件。使用低级API时,将对移动设备的显示屏幕具有完全的控制权,同时也能够决定用户该如何与程序交互,因此程序开发人员考虑的细节就比较多。由于每种设备都有不同的特性(不同的操作方式、颜色和大小),因此一旦采取低级API,程序的可移植性将大大降低,将不再保证程序可以在不同的机器上执行。 6.2高级用户界面编程基础 6.2.1 Display对象 MIDP使用Display对象进行用户界面的管理,负责与应用程序管理器进行交互。Display代表了系统显示屏和输入设备的管理器,包含用来获取设备属性的方法,以及请求在设备上显示抽象屏幕对象的方法。 表6-1 Display对象常用方法 程序6-1:DisplayTest.java package chap6; import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class DisplayTest extends MIDlet { Display display = null; public DisplayTest() { super(); } protected void startApp() throws MIDletStateChangeException { display = Display.getDisplay(this); int colors = display.numColors(); boolean iscolor = display.isColor(); boolean s = display.fla

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档