移动开发实战-高级用户界面

上传人:第*** 文档编号:50055229 上传时间:2018-08-06 格式:PPT 页数:52 大小:1.89MB
返回 下载 相关 举报
移动开发实战-高级用户界面_第1页
第1页 / 共52页
移动开发实战-高级用户界面_第2页
第2页 / 共52页
移动开发实战-高级用户界面_第3页
第3页 / 共52页
移动开发实战-高级用户界面_第4页
第4页 / 共52页
移动开发实战-高级用户界面_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《移动开发实战-高级用户界面》由会员分享,可在线阅读,更多相关《移动开发实战-高级用户界面(52页珍藏版)》请在金锄头文库上搜索。

1、高级用户界面 - 11河北新龙龙回顾 了解JavaME平台体系u虚拟机(KVM)u配置(Configuration)u简表(Profile) 熟悉JavaME开发平台的搭建 理解MIDlet应用程序的运行机制uMIDlet的生命周期 掌握开发、打包部署MIDlet应用的步骤2河北新龙龙本章目标 了解JavaME用户界面体系结构 掌握Screen类及其子类的使用 理解JavaME事件处理机制3河北新龙龙用户界面体系-1 用户界面u提供计算机与用户的交互方式 用户界面种类u“命令行”方式u图形用户界面(GUI)4河北新龙龙用户界面体系-2 MIDP用户界面-1uMIDP定义了一系列图形界面组件,大

2、体分 为两类:高级用户界面和低级用户界面 u高级用户界面 由已定义好的界面组件(例如列表、按钮、文 本区等等)构成,一般适合创建商业应用程序 。u高级用户界面的特点 界面的绘制过程由具体设备的MIDP实现负责 应用程序不用关注基本的用户交互方式(例如 滚动条) 应用程序不用限定具体的输入设备 5河北新龙龙用户界面体系-3 MIDP用户界面-2u低级用户界面提供了访问特定设备相关细 节的方法,无法保证应用程序的可移植性 。 u低级API主要用于: 精确控制屏幕显示 监听按键事件(按下、释放、保持) 直接访问设备的物理按键 u低级API常在需要严格控制界面显示的应用 程序中使用,例如游戏程序。6河

3、北新龙龙用户界面体系-4 高级用户界面概述-1 uMIDP将用户界面抽象为具有显示能力的组件uDisplayable是代表具有显示能力的组件。 Screen类代表高级界面组件,Canvas代表低级 界面组件 7河北新龙龙用户界面体系-5 高级用户界面概述-2 uDisplayable的公共特征 可以有一个标题栏 可以有一个滚动信息栏 可以有多个命令 可以关联监听器常用方法说说明getWidth获获取界面宽宽度getHeight获获取界面高度isShown判断界面是否可见见setTitle设设置标题栏标题栏 信息getTitle获获取标题栏标题栏 信息setTicker设设置滚动滚动 信息条ge

4、tTicker取得滚动滚动 信息条addCommand添加命令setCommandListener设设置命令监监听器8河北新龙龙用户界面体系-6 高级用户界面概述-3u所有的用户界面API都在 javax.microedition.lcdui包中进行定义u高级API的体系结构 9河北新龙龙用户界面体系-7 高级用户界面概述-4uScreen类型及其子类封装了复杂的用户界面组 件 List类:可以向用户提供一组可选数据项的列表选 择界面 Alert类:包含图片或文字等临时信息的简单提示 界面 TextBox类:接受多行输入的简单文本编辑界面 List、Alert、TextBox,在这些屏幕对象上

5、不能添 加其他界面组件 Form类:类似一个容器,用于将多个Item组织在一 起的表单容器界面10河北新龙龙用户界面体系-8 高级用户界面概述-5uItem类:可以被添加到表单界面上的组件类 StringItem类:显示静态文本,可以用作标签、按 钮或超链接 ImageItem类:显示图像,可以用作图标、按钮或 超链接 DateField类:用于日期的选择或输入 Gauge类:用于显示进度条或可视化的范围设置 ChoiceGroup类:用于一个集合的单选或多选 Spacer类:用作组件布局时的占位符11河北新龙龙Display类-1 Display类-1u代表系统屏幕和输入设备的管理器,可以利

6、用 该类获取设备属性并向设备请求要显示的对象u获取Display对象 每个MIDlet对象都包含一个唯一的Display对象的 引用 可以调用Display的静态方法getDisplay获取该引 用 pubilc static Display getDisplay(MIDlet midlet)12河北新龙龙Display类-2 Display类-2u使用Display类切换屏幕 setCurrent(Displayable displayable):将指 定界面设置为当前界面 setCurrent(Alert alert,Displayable nextDisplayable):将指定的Ale

7、rt设置为当前界 面,当Alert界面关闭后,显示nextDisplayable代 表的界面u参数Displayable可以接受任何Displayable子 类的实例 演示Display类示例代码13河北新龙龙Alert-1 Alert-1u代表一个包含提示信息的屏幕对象,它具有以 下特征: 可以包含标题信息 可以包含提示消息 提示内容可以是文本或图像 可以设置要显示的时间,当超过限定的时间后,界 面管理器将自动显示下一个界面。14河北新龙龙Alert-2 Alert-2u创建Alert对象 Alert(String title) Alert(String title, String aler

8、tText, Image alertImage, AlertType alertType)uAlertType: ALARM通常提示用户发生了一个事件CONFIRMATION 确认操作执行完毕 ERROR提示用户执行了一个错误的操作 INFO提示用户一个普通消息 WARNING警告用户将要执行的操作具有潜在的危险演示Alert示例代码15河北新龙龙Ticker Tickeru实现了一小段文本消息在屏幕界面上循环显示 的功能。u可以为任何Displayable类型的组件添加或移 除Ticker对象 u创建Ticker对象 public Ticker(String str)uTicker对象的方法

9、 getString:用于获得字符串 setString:用来设置要显示的字符串演示Ticker类示例代码16河北新龙龙Command-1 用户事件处理-1 uMIDP中的事件处理过程与JavaSE相同,都是 基于“监听者模型” 事件:用户与应用程序交互过程中向设备发送的 通知或消息 事件源:产生事件的界面组件(按钮、文本框) 监听者:负责对触发的某类事件进行处理 17河北新龙龙Command-2 用户事件处理-2uMIDP中的事件分类:界面组件的类型分为高级界面事件 和低级界面事件 u高级界面事件 用户动作触发(例如通过按键执行了某个命令) 界面状态改变触发,例如文本框中的内容发生了变化。u

10、低级界面事件 与设备相关的基本事件,例如物理按键被按下或者支持触屏操作的指针事件 18河北新龙龙Command-3 Command类-1u对用户操作的抽象,代表了一个命令,可以 被添加到所有的Displayable或Item中u创建Command对象 Command(String label, int commandType, int priority) Command(String shortLabel, String longLabel, int commandType, int priority) 19河北新龙龙Command-4 Command类-2ucommandType: SCRE

11、EN 1当前屏幕相关的操作,最为常用 BACK 2 返回前一个屏幕,放弃在当前屏幕操作时使用 CANCLE 3提示用户是否确认某个操作时使用 OK 4确认用户同意执行某个操作时使用,通常置于 最易访问的位置 HELP5请求帮助时使用 STOP6停止正在执行的操作时使用 EXIT7正常关闭应用程序时使用 ITEM8指示命令与某个界面组件相关时使用20河北新龙龙Command-5 Command类-3upriority : 用来描述一个命令相对其他命令的重要性,由一 系列整数值表示。 优先级为1通常代表是一个重要命令,2、3、4则 代表相对低的优先级。 uMIDP实现在屏幕上放置按钮的策略 现根据

12、类型,再考虑优先级,最后是添加顺序21河北新龙龙Command-6 Command类-4u为界面添加命令对象: 调用Displayable类的addCommand方法将其添加到 界面中 public void addCommand(Command cmd);/使用Command类类的示例 /回复按钮钮private Command replyCmd = new Command(“回复“,Command.SCREEN,1);/删删除按钮钮private Command delCmd = new Command(“删删除“,Command.SCREEN,1);/返回按钮钮private Comma

13、nd backCmd = new Command(“返回“,Command.BACK,1); /界面管理器private Display display; /信息提示界面private Alert alert = new Alert(null); /构造方法public CommandTestMIDlet() display = Display.getDisplay(this);/为为界面添加命令alert.addCommand(replyCmd);alert.addCommand(delCmd);alert.addCommand(backCmd);display.setCurrent(ale

14、rt);MIDP允许在一个屏幕上的 多个命令具有相同的类别 或优先级22河北新龙龙CommandListener-1 问题:u执行界面上的命令,但是没有任何反应,是什 么原因? 分析:u用户执行命令时,已经触发了相应的事件,但 没有对事件感兴趣的接受者,必须让应用程序 注册为某类事件的监听者,才能接到该类事件 被触发的通知23河北新龙龙 CommandListener类:u高级事件监听器接口 注册为Command命令的监听者u1. 实现CommandListener接口类,重写接口的 commandAction方法u2. 将监听者与事件源进行绑定CommandListener-2public

15、void commandAction(Command cmd,Displayable c) public class CommandTestMIDlet extends MIDlet implements CommandListener/实现实现接口private Alert alert = new Alert(null);/构造方法public CommandTestMIDlet() / 将事件源与监监听器绑绑定alert.setCommandListener(this);/ 重写commandAction方法public void commandAction(Command c, Displayable d) if(c = replyCmd)System.out.println(“您执执行了回复命令!“);else if(c = delCmd)System.out.println(“您执执行了删删除命令!“);else if(c = backCmd)System.out.println(“您执执行了返回命令!“); 事件源必须为监听者提供注 册的方式24河北新龙龙List-1 List类u代表具有一系列备选项的列表类,用户可以从 给定的选项中进行选择 u列表中的每个选项都成为元素(element)u创建List对象 List(String ti

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号