上一篇:猫眼宽频 提供真正流畅的网络电视节目 >>
全文阅读
| 天极软件专题专区精选 到天极软件“读编交流区”畅所欲言 | |||
| Google专区 | POPO专区 | QQ专区 QQ挂机 | 了解Web2.0 |
| Flash MX 视频教程 | Photoshop视频教程 | 网页设计视频教程 | 照片处理数字暗房 |
| PPT动画演示教程 | Excel动画教程集 | Word动画演示教程 | Windows Vista专区 |
| 特洛伊木马专区 | 黑客知识教程专区 | 防火墙应用专区 | 注册表应用专区 |
| Windows API开发专区 | 网络编程专区 | VB数据库编程专区 | 图像处理与多媒体编程 |
一、序言
手持设备的用户接口编程不同于桌面微机编程。例如,手持设备的显示尺寸要小,显示设备并不总是包括点击工具如鼠标和笔。由于这些原因,在手持设备的GUI编程时,我们不可能遵循与台式微机编程GUI同样的规则。
CLDC本身并没有定义任何的GUI功能。代之的是,J2ME的官方GUI类用象MIDP这样的轮廓文件所描述,并由JAVA社团组织定义。你可能注意到在MIDP中描述的GUI类不是基于AWT的,这似乎存在很大问题。请往下看。
二、为什么不重用AWT?
经过相当的考虑之后,MIDP专家组决定不再重用已有的AWT和Swing类。原因如下:
·AWT是为桌面微机开发的,并为这种情形作了优化处理。
·AWT设定了某些用户交互模式。AWT的组成当中考虑到了如鼠标等的点指设备,但是许多手持设备,如手机等,只有键盘用于输入。
·AWT具丰富的特性,包括在手持设备上还不能实现的。例如,AWT为窗口管理提供广泛支持,如窗口大小与重叠调用。然而,有限的手持设备的显示空间,使得它上面的窗口调整根本不可能实现。所以,手持设备是用不到AWT的窗口布局管理器的。
·当用户与基于AWT的应用程序交互时,甚至对象是动态创建的。这些对象仅在与之相关的事件被应用程序或系统处理时--此时,这些对象对于垃圾回收器来说是有效的--这些对象才存在。但是手持设备有限的CPU和内存无法承担如此重任。
三、MIDP GUI API
基于以上原因,MIDP创建了它自己的简短的GUI,其与AWT存在相当的不同。MIDP GUI包含了低级的和高级的API两类,这两类AIP各有自己的事件集。本文将讨论并演示通过这两类API来使用对象的例子。通过API操纵事件在下一章中介绍。
高级的API主要应用在移动设备开发特别注重移植性的情况下。为了保证可移植性,API进行了高级抽象,因此给予用户在控件的外观和感觉上极少的控制。例如,你没法定义一个高级组件的可视化外观(形状,颜色或者字体)。大多数与组件的交互由系统实现体所封装;应用程序不必在乎它们。因此,底层的实现上为适应于硬件和本机用户接口风格作了必要的调整。实现了高层API的类全部继承自javax.microedition.lcdui.Screen类。
而低层API作了很少的抽象处理。该设计用于要求对图形元素进行精确控制的场所,这时应用程序还可以对低层输入事件进行存取。这一类API使得应用程序可以对在屏幕上显示的内容进行精确的控制。javax.microedition.lcdui.Canvas和javax.microedition.lcdui.Graphics类实现该低层API。但是,应该明确指出,无法保证存取低层API的MIDlets程序是可移植的,因为这种API提供了存取特定设备的细节操作。
1、MIDP GUI模型
下面是MIDP GUI在内核上如何工作的一个模型。为在某MIDP设备上进行显示,你需要取得该设备的display,这是由javax.microedition.lcdui.Display类来描述的。类Display是唯一的显示管理器,当用于每一个活动的MIDlet时被实例化,并提供方法以检索有关该设备显示能力的信息。
获取设备的显示信息是很容易的。但是,对象本身并不令人感兴趣。而更令人感兴趣的抽象是screen,它封装和组织图形对象并协调通过设备的用户输入。Screen由javax.microedition.lcdui.Screen对象来描述并由Display 对象调用setCurrent( )方法显示。一个应用程序中可有多个screen,但是在某一时刻只有一个screen在屏幕上是可见的(当前的这一个),用户只能遍历在这一个screen上的项。图1显示了在display与它的可能的多个screen之间的一对多的关系。
|
图1.display与screens间的关系 |
在MIDP GUI中共有三种类型的screen:
·完全封装了复杂用户接口组件(如List:下图2或者TextBox:下图3)的screen。这些screen的结构是预定义好的,应用程序不能把其它组件添加到这些screen上。
|
图2.一组互斥的选择项 |
图3.一个文本框的例子 |
·使用表单组件的普通screen。应用程序可以把文本框,图像及一些简单的相关联的UI组件到表单上,此时表单起容器作用。
·在低层API使用的screen,如一个Canvas或者Graphics对象的子类。
2、Lcdui包
所有的MIDP GUI类都包含在包javax.microedition.lcdui中。该包包含了3个接口和21个类,详见表1和表2。
表 1: lcdui接口
| 接口 | 描述 |
| Choice | 为用户接口组件定义一个API,该API实现从预定义的选项中的选择 |
| CommandListener | 用于应用程序检索来自实现过程的高层次事件 |
| ItemStateListener | 当应用程序需要接收事件(该事件代表了交互项中的内部状态中的变化)时使用 |
表 2: lcdui类
| 类 | 描述 |
| Alert | 一个screen,它显示数据给用户,并在显示下一屏前等待一段时间 |
| AlertType | 该类指出上面Alert的类型 |
| Canvas | 这是一个需要进行低层事件处理并为屏幕显示发出图形调用的应用程序的基础类 |
| ChoiceGroup | 为了放置在表单中的一组可选择的元素 |
| Command | 用来封装某动作的语义信息 |
| DateField | 一个可编辑组件,用于描述显示在表单上的日历上的日期和时间信息 |
| Display | 用于描述显示管理器和系统的输入设备 |
| Displayable | 可被显示的对象 |
| Font | 描述字体及其大小的类 |
| Form | 一个screen,其中包含了许多项(图像,文本,文本域,选项组,等)的任意组合 |
| Gauge | 完成在表单上某个值的条码图显示 |
| Graphics | 该类提供简单的二维几何体着色能力 |
| Image | 存放图像数据的类 |
| ImageItem | 当把图像对象添加到form 或者alert上时,负责其布局控制。 |
| Item | 它是一个可以添加到Form 或者Alert上的所有组件的基类。 |
| List | 包含一系列选择的屏幕控件 |
| Screen | 所用高层用户接口类的基类 |
| StringItem | 该项可以存放字符串 |
| TextBox | 允许用户输入和编辑文本的屏幕控件 |
| TextField | 可以放到表单上去的可编辑文本控件 |
| Ticker | 一种横跨屏幕显示的断续器类型的文本,它可以被依附到除Canvas外的所有screen上。 |
下图显示其中的主要类及其之间的关系。
|
图 4.包中的主要类之间的类关系图 |
下一篇:全文阅读 >>
相关文章:
- · 修改qq密码将改至网页上进行
- · 虚拟摄像头 与qq好友uc好友同时视频聊天
- · TM发布2005正式版 首次从QQ中剥离
- · 轻松过五一 p2p网络电视逐个数
- · QQ2005Beta3共享地理位置和天气功能详解
- · QQ2005 Beta3 珊瑚虫3.1.6 版发布
- · QQ2005Beta3——超级视频 超乎想“像”
- · 腾讯TM2005正式版新功能提前看
- · 防止恶意发广告的人加进QQ群
- · QQ普通会员免费克隆好友列表
- · 地址栏输代码 强制QQ好友与你聊天
- · 弄清Q友是否在线的最简单方法的应对措施
- · windows系统中内存出错的几个解决方案
- · 微软将在非洲推出廉价版windows xp
- · 经典回顾 那些被遗忘的windows快捷键
- · 32所高校bbs站长头脑风暴谋创业
- · “绑架”文件索钱“黑客”洛阳落网
- · 美网站平均每天被黑7次 美长期招安黑客
- · 德职业黑客揭秘:帮公司找漏洞合法赚钱
- · 黑客集团揭秘:站在“死亡军团”身边
- · 入侵美军网络 头号黑客面临牢狱之灾
- · QQ宠物喂养完全手册:入门篇
- · QQ宠物喂养手册:关键词列表
- · QQ宠物喂养手册:宠物炫指南
- · QQ宠物喂养手册:打工指南
- · 揪出QQ宠物炫的真实地址
- · QQ-Zone开始发放激活资格 每天十万个
- · Q-Zone使用技巧完全攻略
- · VC中利用原始套接字实现网络监听
- · VC++编程实现对火焰的计算机动态仿真
- · 在VC++应用程序中实现颜色选择组合框
- · 用Visual Studio 2005创建宏代码生成器
- · 使用VS2005打造简单分页浏览器
- · 美机构拟给恶意代码颁发身份证
- · 网络惊现能攻击三种浏览器的恶意代码
- · Netsky-P仍列恶意软件威胁榜首位
- · 无线互联 动态WAP站点的服务器设置
- · Google Maps和Web应用程序的整合
