《01手机客户端系统的设计与开发(J2ME公交查询系统开发全程指导).ppt》由会员分享,可在线阅读,更多相关《01手机客户端系统的设计与开发(J2ME公交查询系统开发全程指导).ppt(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、J2ME 综合实训学习情景1移动公交车查询系统的设计和开发课程内容 学习情景:移动公交车查询系统的设计和开发 高级UI 高级事件处理 移动设备访问网络 查询算法课程目标培养什么样的人才 能够开发无线电子商务、无线电子政务和无线查询等系统的J2ME 无线应用开发软件工程师 能够开发智能手机游戏的J2ME 游戏软件开发工程师学习单元一 移动公交车查询系统的分析和设计 学习目标:掌握构建基于J2ME 的移动电子商务平台 了解项目的需求分析 了解项目的概要设计 了解GPRS 的工作原理 了解Servlet 的工作原理 应具备的职业行动能力:了解移动电子商务系统的架构 移动公交车查询系统分析和设计 重点
2、和难点 构建基于J2ME 的移动电子商务平台项目来源 技术成熟度 J2ME 的出现 GPRS JAVA 手机的普及 用户群 公司职员与大学生 项目功能需求 服务器端(Servlet)支持多个用户访问 一次查询 二次查询 客户端(J2ME)输入简单:城市、当前站点、目的站点 数据库 要求不高 Access技术支持 J2ME Java 技术特性 移动设备 GPRS GPRS 是通用分组无线业务(GeneralPacketRadioService)的英文简称,是一种基于GSM 系统的无线分组交换技术,提供端到端的、广域的无线IP 连接。Servlet Servlet 是服务器端语言,它的优点是自动开
3、启多个线程接受多个用户访问。产品定位 用户市场 主要针对于公交路线的查询。若经修改,则可用于查询相关资料(天气预报、通信、或金融服务业等)。行业市场 适用于各行各业,例如:金融服务业、通信、政府、天气预报、教育等。地域市场 此服务不仅在国内可以使用,只要有GPRS 网络,都可以使用。移动电子商务平台的架构 技术背景 J2EE(TheJava2Platform,EnterpriseEdition)是目前比较流行的多层企业应用技术。它的优点之一是能够适应不同类型的客户端,如Web 浏览器、JavaApplets 和Java 应用程序,这些客户端能够很容易地部署在笔记本电脑、台式电脑和工作站上,实现
4、跨平台。J2ME 移动电子商务(MobileCommerce,M-Commerce)是电子商务在移动网络中的应用,但是M-Commerce 提供了比E-Commerce 更灵活、更方便、更及时的信息服务。移动电子商务平台的架构 网络访问模式 WAP 模式:WAP(WirelessApplicationProtocol,无线应用协议)是使移动通讯设备可靠地接入互联网的国际认可标准之一。局限性:一方面是WAP 设备受到CPU、RAM、ROM 和处理速度的限制,只能处理有限的数据输入;另一方面,WAP 承载网络是低功率的网络,带宽小于10kbit/s。移动电子商务平台的架构 i-Mode(Infor
5、mationMode)模式:是由日本电报电话公司(NTT)和移动通信公司DoCoMo 公司于1999 年2 月,推出的移动互联网技术,这种技术使得用户能够通过蜂窝电话使用Internet 服务。i-mode 的带宽为9600/bps,同时也具有可靠性不高、稳定性不高和不可预测性等局限性。GPRS 和3G 网络:具有较高的数据传送能力,Java 机制和优化的HTTPS 和KSSL 技术保障了数据在网络上的安全性,同时,它提供直接访问网络的能力,而WAP 和i-Mode 模式必须要通过网关(Gateway)才能访问网络。移动电子商务平台的架构 移动电子商务平台的架构 概要设计 一次查询 车次 二次
6、查询 车次-中转站-车次 三次查询 车次-中转站-车次-中转站-车次 查询失败 对不起,查无记录 概要设计小结 构建基于J2ME 的移动电子商务平台 项目的需求分析 项目的概要设计 GPRS 的工作原理复习题 基于J2ME 的移动电子商务平台的架构 GPRS 与WAP 和i-Mode 的优势 需求分析 概要设计学习单元二 手机客户端用户界面设计的一般方法 学习目标:掌握MIDP中用户界面的体系结构 了解LCDUI 包 理解Display 类和Displayable 类 应具备的职业行动能力:掌握MIDP中用户界面的体系结构,会设计。重点和难点:MIDP中用户界面的体系结构 Display 类和
7、Displayable 类之间的关系用户界面(UI)的体系结构 电视、电影等 UI:UserInterface 一种通过组件来显示,如:输入短信 一种直接接收键盘按键,如:游戏中的上下左右键 LCDUI 包 高级用户界面Screen 类 低级用户界面Canvas 类用户界面(UI)的体系结构Display 类和Displayable 类 Display 类 在用户界面中,Display 提供在移动设备上显示组件的功能,在每个MIDlet应用程序中只有一个Display 实例,必须通过Display.getDisplay(MIDlet)方法来获得Display 实例,MIDlet获得Displa
8、y 实例后,它将一直占有,直到MIDlet调用destroyApp(boolean)方法。Displayable 类 Displayable 类的下面有Screen 和Canvas 两个类,Screen 代表的是高级用户界面,而Canvas 代表的是低级用户界面。为了查明设备上当前显示的内容,使用getCurrent()方法。Display 类和Displayable 类importjavax.microedition.midlet.MIDlet;importjavax.microedition.lcdui.*;publicclassDisplayMidletextendsMIDletpriv
9、ateDisplaydisplay;publicvoidstartApp()display=Display.getDisplay(this);.display.setCurrent(aForm);.Screen 类 Screen 类是所有高级APIs 的超类 预定义好的组件:TextBox、List 和Alert。这类组件不可以放置其他类型的组件,只能作为原子组件使用。容器组件:Form。这类组件可以在其中添加文本、图形组件或其他相关的图形组件,如:Item 项目组件。每个Screen 都拥有两个附加特性:标题和滚动条(Ticker)。Screen 类滚动条标题创建Screen 应用程序 创建
10、Screen 应用程序 步骤1:导入包。步骤2:继承MIDlet,并且实现事件处理接口。步骤3:声明、定义类和属性。步骤4:创建构造方法。步骤5:实现startApp()方法。步骤6:实现pauseApp()方法和destroyApp()方法。步骤7:实现事件处理方法commandAction(Commandcmd,Displayabledis)。小结 MIDP中用户界面的体系结构 LCDUI 包 Display 类和Displayable 类 建立应用程序的步骤复习题 MIDP中用户界面的体系结构 LCDUI 包 Display 类和Displayable 类 建立应用程序的步骤学习单元三
11、移动公交查询客户端用户界面设计(1)学习目标:移动查询系统用户界面概述 工程中所使用的类 Form类 Item 类 TextField 类 应具备的职业行动能力:分析移动公交车查询系统用户界面的组成元素 设计用户界面、功能按钮布局 重点和难点:工程中所使用的常见类移动查询系统用户界面概述 在移动设备终端,由于资源等环境的限制,尽量要减少使用对象的个数。同时,为了客户能够方便快捷的操作,也需要客户端的设计要尽量的简化和傻瓜化。基于以上两点因素的考虑,在移动公交车查询系统的客户端,系统分别使用了Form类、TextField 类、Alert 类、Ticker 类和Image 类。其中Form对象中
12、放置三个TextField 对象,分别用于在客户端中的文本框中输入城市、当前站点与目标站点。Alert 对象用于描述软件的版权信息。Ticker 对象用于显示提示信息。Image 对象负责产生png 文件,并在屏幕上显示。Form 类 Form对象是一种可以容纳任意项目(item)组合的屏幕,包括只读和可编辑文本字段、图像、日期字段、指示器(gauge)和选项组。Item 类的任何子类都可以放到Form对象里面。Form 对象不使用布局管理器。相反,Form对象以非常类似于列表的方式组织自己的组件,通常是从上到下显示组件。Item 类 所有可以放到Form或Alert 中的组件都是Item 抽
13、象类的子类。TextField 类 TextField 对象是一种可以放入Form的可编辑文本组件,可以使用TextField 对象接收用户的输入。但是TextField 有容量限制,容量就是对象可以存储的字符数量,可以使用getMaxSize()方法取得MIDP实现设置的最大容量。课堂实践 分工作组讨论并设计移动公交车查询系统的用户界面小结 移动查询系统用户界面概述 工程中所使用的类 Form类 Item 类 TextField 类复习题 设计手机用户界面应该注意的几点问题 Form类的作用 如何在Form对象上添加组件 TextField 类的作用学习单元四 移动公交查询客户端用户界面设计
14、(2)学习目标:Image 类和ImageItem 类 异常处理 Alert 类 应具备的职业行动能力:分析移动公交车查询系统用户界面的组成元素 设计用户界面、功能按钮布局 重点和难点 ImageItem 类Image 类 Image 类是一种图形图像数据容器,图形文件使用的是可移植网络图形(PortableNetworkGraphics,简写png)。当然,png 文件并不是唯一的一种图片格式,还可以是jpg 和gif 文件格式,但是MIDP是支持具有动画效果的图形文件。根据创建的方式,Image 可以是不变的,也可以是可变的。创建不变图像时,一般都是从资源包、文件或网络中载入的,固定图像在
15、创建之后不能再修改,放在Alert、Form或ImageItem 中的图像必须是固定的。可变图像在内存中创建,并且可以被修改。在WirelessToolkits 中,图像的位置位于res 中,并且在创建图像时,要在图像名前加上一个“/”,例如:ImageanImage=Image.createImage(/welcome.png);项目应用anImage创建一个图像/声明一个图片privateImageanImage;tryanImage=Image.createImage(/welcome.png);catch(IOExceptionioe)ioe.printStackTrace();Ima
16、geItem 类 在使用Image 类时,图像的位置不能够人为的进行制定,为了能够制定图像的位置,在MIDP中提供了ImageItem 类。ImageItem 类是一个图像布局管理器,可以控制图像放置的方位,例如:前方、左方、右方、中间和后方等。描述这些方位的是ImageItem 类的静态属性。PublicImageItem(Stringlabel,Imageimg,intlayout,StringaltText)该构造方法使用指定的标签、图像、布局指示符和替换用的文本字符串创建新的固定ImageItem 对象。如果显示器不能显示图像,就在放图像的位置显示altText 参数指定的字符串,la
17、yout 参数是ImageItem 类静态属性的组合。创建一个图像布局管理器privateImageanImage;/声明一个图片布局管理器privateImageItemanImageItem;tryanImage=Image.createImage(/welcome.png);anImageItem=newImageItem(null,anImage,ImageItem.LAYOUT_NEWLINE_AFTER|ImageItem.LAYOUT_CENTER,null);catch(IOExceptionioe)ioe.printStackTrace();Alert 类 Alert 对象让
18、用户等待一定时间才进入下一个屏幕,是一种可以包含文本和图像的屏幕,用来提示错误信息或其他情况。警报分为永久模式和定时模式两种。永久模式警报一直停留在屏幕上,直到用户关闭它为止,然后它将返回之前显示的屏幕或者应用程序明确指定的屏幕。setTimeout(Alert.FOREVER)方法可以让Alert 对象成为永久模式警报。定时模式警报只在屏幕上显示一段时间(通常是几秒钟),然后自动进入下一个屏幕,可以使用setTimeout(inttime)方法设置警报时间。构造方法。课堂实践 分工作组讨论并完成移动公交车查询系统的用户界面 各工作组演示自己的工作成果,达到相互交流共同提高的目的小结 Imag
19、e 类和ImageItem 类 异常处理 Alert 类复习题 Image 类和ImageItem 类 异常处理 Alert 类学习单元五 移动公交车查询客户端系统的事件处理设计 学习目标:Ticker 类 Command 类 CommandListener 接口 事件处理的步骤 应具备的职业行动能力:设计移动公交车查询系统客户端的事件处理方法。重点和难点 Command 类 事件处理的步骤Ticker 类 Ticker 对象实现了在屏幕的最上方连续滚动一小段文本,同一滚动条可以为屏幕上不同的对象公用。创建滚动条之后,在需要使用的屏幕上使用setTicker()方法把滚动条添加到当前的屏幕上。
20、注意:MIDP规范没有提供启动或停止滚动条的方法;滚动条的字符串是连续滚动的。当字符串滚动出显示器以后,滚动条将从字符串的开头开始,最好在滚动条字符串的末尾添加一些空格,以免信息的末尾与开头连在一起;滚动的方向和速度取决于MIDP 实现。事件处理 事件处理使得用户和应用程序之间可以进行交互,好的事件处理程序对于项目的成功与否事关重要。在MIDP事件处理中,有高级事件处理机制和低级事件处理机制。高级事件处理机制相对应的是触发高级用户界面所产生的事件处理,而低级事件处理机制相对应的是触发低级用户界面所产生的事件处理。本节将重点讲述高级事件处理机制,在高级事件处理中,有CommandListener
21、 接口、ItemCommandListener 接口、ItemStateListenerCommand 接口和Command 类组成。所有的用户界面的回调都是系列化的,不会同时发生调用两个或以上的事件处理的。Command 类 一个Command 对象实际上就是一个按钮,例如:“发送”按钮,它仅仅只包含自身的信息,例如:按钮的名称,按钮的优先级和按钮的类型,不包含按钮触发时所发生的事件。因此,我们可以把Command 对象看成一个按钮。Command 使用以下方法来创建一个按钮:Command(Stringlabel,intcommandType,intpriority);其中,label 表
22、示按钮的名称,commandType 表示按钮的类型,priority 表示按钮的优先级。例如:CommandcmdSend=newCommand(Send,Command.SCREEN,1);CommandListener 接口 CommandListener 接口是Command 对象的事件处理监听器,它只有一个抽象方法:commandAction(Commandc,Displayabled);其中,Command 对象为按钮,Displayable 对象为所显示的屏幕。该方法是指在那个屏幕上的事件处理。事件处理步骤 步骤1:建立一个包含事件信息的Command 对象。cmdSend=ne
23、wCommand(Send,Command.SCREEN,1);步骤2:将该Command 对象添加到Form、Canvas、Alert、List 或TextBox 中。inputForm.addCommand(cmdSend);步骤3:在MIDlet类中实现CommandListener 接口。publicclassMGJCCXextendsMIDletimplementsCommandListener事件处理步骤 步骤4:在Form、Canvas、Alert、List 或TextBox 对象中建立事件监听器。inputForm.setCommandListener(this);步骤5:实现
24、commandAction 方法,进行事件处理。publicvoidcommandAction(Commandcmd,Displayabledis)if(cmd=cmdBack)display.setCurrent(inputForm);课堂实践 分工作组编写移动公交车查询系统的各个事件处理方法小结 Ticker 类 Command 类 CommandListener 接口 事件处理的步骤复习题 Ticker 类的功能 Command 类的作用 CommandListener 接口中的方法 事件处理的步骤学习单元六 移动公交车查询客户端系统的进一步完善常用的高级UI类 学习目标:TextBox
25、 类 List 类 ChoiceGroup 类 ItemStateListener 事件处理 DateField 类 Gauge 类 StringItem 类 应具备的职业行动能力:完善移动公交车查询系统客户端的用户界面和事件处理方法的设计。撰写各种项目工作文档。重点和难点:ItemStateListener 事件处理TextBox 类 TextBox 对象是一种允许用户输入和编辑文本的屏幕。TextBox 和TextField 的功能大致上是相同的,不同的是TextBox 是独立的文本编辑屏幕;而TextField 是Item 抽象类的子类,它必须包含在Form对象中。List 类 List
26、(列表)是一种包含可选选项元素的屏幕。List 和下一节将要讲到到的ChoiceGroup 一样,实现了Choice 接口,用户可以通过在选项之间移动来与列表交互。但是,交互不会生成任何事件处理,只有当在做出选择以后才会产生事件处理。在List 中,有三种模式:IMPLICIT 模式、EXCLUSIVE 模式和MULTIPLE 模式。前两种模式只能选择一项元素,第三种模式可以选择多项元素。ChoiceGroup 类 ChoiceGroup 是Form对象中的可选元素,它与List 类似,也是实现Choice 接口,其中的方法和属性也基本相同。ChoiceGroup 与List 不同的是:Cho
27、iceGroup 只有EXCLUSIVE 和MULTIPLE 两种模式,而List 有三种模式;List 可以单独使用,而ChoiceGroup 必须是放置在Form对象之上。ItemStateListener Form中Item 的状态是可以改变的,例如:改变TextFiled 对象中的文本内容,使用上下键来选择ChoiceGroup 对象中的元素时。MIDP使用ItemStateListener 来监听这些状态的变化,当事件被触发时,会调用itemStateChanged()方法来进行事件处理。在下列情况下,将会调用itemStateChanged()方法:当改变TextFiled 对象中
28、的文本内容或修改TextFiled 对象中的值时;当用户在使用上、下和Select 键时;当在DateField 中输入新的日期或时间时;改变Gauge 对象中的值时。事件处理步骤 步骤1:在MIDlet类中实现ItemStateListener 接口。publicclassMGJCCXextendsMIDletimplementsCommandListener,ItemStateListener 步骤2:将Item 对象添加到Form中。aForm.append(aChoiceGroup);步骤3:在Form对象中建立事件监听器。aForm.setItemStateListener(this
29、);事件处理步骤 步骤4:实现itemStateChanged()方法,进行事件处理。publicvoiditemStateChanged(Itemitem)if(item=aChoiceGroup)aChoiceGroup.setLabel(EMAIL:+ChoiceGroup.getString(aChoiceGroup.getSelectedIndex();DateField 类 DateField 是一个Item 对象,它是一个放置在Form对象中用来显示时间和日期的可编辑组件。当编辑DateField 对象中的时间或日期时,会触发ItemStateListener 事件。DateFi
30、eld对象有三种显示模式:DATE(日期)模式、TIME(时间)模式和DATE_TIME(日期)模式,可以使用该类的静态整型变量来决定显示模式。3-58Gauge 类 Gauge 对象是一个放置在Form对象中的条形图,它可以和用户进行交互,例如:调节手机声音音量、网络连接进度条和下载进度条等。3-59StringItem 类 StringItem 对象是Item 的子类,它的内容是只读的,用户不能够编辑它的内容。但是它的内容可以被应用程序修改。3-60课堂实践 各个工作组完善移动公交车查询系统客户端的用户界面和事件处理方法的设计 撰写各种项目工作文档。3-61小结 TextBox 类 List 类 ChoiceGroup 类 ItemStateListener 事件处理 DateField 类 Gauge 类 StringItem 类3-61