J2ME软件开发2移动通信复习.ppt
《J2ME软件开发2移动通信复习.ppt》由会员分享,可在线阅读,更多相关《J2ME软件开发2移动通信复习.ppt(138页珍藏版)》请在三一办公上搜索。
1、J2ME网络应用软件开发,J2ME网络应用软件开发实践,背景 随着3G和GPRS无线网络的推进,高速传送大量数据、视频信号和高质量的音频信号在无线网络成为可能。无线移动设备从语音服务、增值服务发展到数据服务。,J2ME网络应用软件开发实践,Java语言非常适合无线设备编程的特点,支持广泛的网络协议,安全性好,平台交叉兼容,纯面向对象开发过程。,J2ME网络应用软件开发实践,移动电子商务平台 移动电子商务(Mobile Commerce,M-Commerce)是电子商务在移动网络中的应用,但是M-Commerce提供了比E-Commerce更灵活、更方便、更及时的信息服务结合J2ME和J2EE技
2、术,用户可以建立一个完整的移动电子商务平台,J2ME网络应用软件开发实践,J2ME结合GPRS和3G网络,具有较高的数据传送能力。在基于J2ME-J2EE技术的电子商务中,数据的传输需要经过无线网络和有线网络。在通信过程中,移动设备段发送数据到无线基站,无线基站将接收到的数据发送到GPRS/3G网络中,通过GPRS/3G网络可以很方便地接入到Internet中,在Internet上数据被发送到企业网络进行会话。网络结构示意图如下:,J2ME网络应用软件开发实践,移动电子商务平台架构,J2ME网络应用软件开发实践,在建立电子商务平台时,由于移动终端资源有限,不可能直接对后台数据库进行访问,因此要
3、想使移动设备终端能够访问到数据库系统,必须使用J2EE技术。一个移动电子商务系统必须建立移动终端程序(使用J2ME技术)和服务器端应用程序(使用J2EE技术)。基于J2ME-J2EE的移动电子商务系统的架构如图所示:,J2ME网络应用软件开发实践,J2ME网络应用软件开发实践,在J2ME客户端,移动设备通过HTTP协议或XML连接到Web Server上,Web Server使用Servlet容器来处理客户端的连接和请求,并将请求发给过企业级服务器,由企业级服务器访问数据库并处理请求,处理结果通过Web Server发回客户端,J2ME网络应用软件开发实践,高级用户界面MIDP用户界面的核心是
4、屏幕,在移动信息设备中有且仅有一个屏幕是可见的,用户只能在这个屏幕中的各个组件之间进行切换高级用户界面组件全部定义在包中。包括高级屏幕对象和表单item组件两大类,其中的高级屏幕对象分成以下两大类:1、封装了复杂的用户界面组件的对象,例如List,Alert,和TextBox等,这些屏幕类的结构是预先定义好的,开发者不能在这些屏幕对象上添加其他组件2、通用的屏幕对象,例如Form。开发者可以在这个屏幕对象上添加、删除、修改和组合各种Item组件,例如StringItem、TextField、Gauge等,J2ME网络应用软件开发实践,Display类和Displayable类 移动设备的屏幕被
5、称为显示设备,应用程序是通过获取MIDlet程序的Display类的实例的引用来与显示设备进行交互的,J2ME网络应用软件开发实践,在使用Display类提供的功能以前,必须首先创建一个Display类的实例,创建该实例的时候,只能用Display类中的静态方法getDisplay()来进行创建,该方法的声明如下:Public static Display getDisplay(MIDlet m),J2ME网络应用软件开发实践,使用该方法可以返回一个对应MIDlet类对象m的Display实例。例如在MyMIDlet类中创建一个Display实例,则可以使用如下的代码:Private Disp
6、lay display;Public MyMIDlet()display=Display.getDisplay(this);因为以上代码定义在MYMIDlet类的内部,因此this关键字就代表MyMIDlet类本身 获得Display类的实例后,就可以调用Display类中的各种方法进行显示设备的管理,J2ME网络应用软件开发实践,高级屏幕对象:Form表单 Form类不同于其他的屏幕类仅仅实现单一的交互功能,它是作为一个容器,可以容纳Item类的子类的屏幕对象 Form类有两个构造函数:public Form(String title)public Form(Stgring title,It
7、em items)其中参数title设置Form表单的标题,参数items是创建Form时包含的Item组件,J2ME网络应用软件开发实践,第一个构造函数用来创建空表单,可以使用以下方法进行插入、追加和删除操作来编辑表单中的Item组件对象:append(Item item),delete(int itemNum),insert(int itemNum,Item item),set(int itemNum,Item item),J2ME网络应用软件开发实践,高级事件处理Command软键 Command对象代表了一个命令按钮,其功能类似于Windows系统中的Button按钮。它必须被添加到一
8、个Displayable屏幕对象上,当这个屏幕对象被显示时,所有与之关联的Command软键都会显示在手机屏幕下方的左右两侧,用户就可以通过手机键盘进行选择了,J2ME网络应用软件开发实践,Command的构造函数定义如下:public Command(String label,int commandType,int priority)其中参数label表示命令标签,也就是显示在屏幕上的命令的名字,参数commandType表示命令类型,参数priority表示命令优先级练习:编写MIDlet程序,创建两个Command软件Exit和OK。程序运行结果如下,J2ME网络应用软件开发实践,运行效
9、果:,J2ME网络应用软件开发实践,CommandListener软键事件 在Command软件创建并被添加到屏幕对象上之后,还需要为屏幕对象添加Command软键的监听器CommandListener。J2ME采用授权事件模型,该模型包括:事件源和监听器。其中Command软件对象就是事件源,实现CommandListener接口的事件处理类就是监听器 当把监听器添加到屏幕对象上以后,监听器就能够捕获该屏幕对象上所有的Command对象所触发的事件,当用户按下Command软键时,将调用监听器中的事件处理方法里的代码,J2ME网络应用软件开发实践,在CommandListener接口中定义了
10、一个事件处理方法commandAction(),其具体语法定义如下:public void commandAction(Command command,Displayable displayable)其中参数command表示当前触发事件的Command软键对象,参数displayable表示当前显示的屏幕对象 为了把监听器添加到屏幕对象上,Displayable类的子类中提供了setCommandListener()方法用来进行监听器的注册。,J2ME网络应用软件开发实践,如果在 MIDlet本类中实现了CommandListener接口,那么可以使用 setCommandListener(
11、This)如果参数设置为Null,则可以删除当前的监听器练习:为MIDlet增加Command软键事件处理,J2ME网络应用软件开发实践,高级屏幕对象:Alert消息框 Alert的作用类似于Windows系统中的消息框,用于向用户提示一些警告信息、错误信息和确认信息。在利用Display类的setCurrent()方法将它设置为当前显示的屏幕时,程序中必须存在另外一个屏幕,这样才能让Alert消息框有返回的屏幕。因此Alert不能被设置为第一个显示的屏幕,J2ME网络应用软件开发实践,模式消息框 一直停留在屏幕上,直到用户通过单击软键将它关闭为止,然后它将返回之前显示的屏幕定时消息框 只是在
12、屏幕上显示一段时间,然后自动消失Alert消息框由两个构造函数:Public Alert(String title)Public Alert(String title,String alertText,Image alertImage,AlertType alertType),J2ME网络应用软件开发实践,在构造函数中没有指定超时时间,将采用默认的超时时间,可以在创建Alert实例之后使用setTimeout()方法来修改消息对话框的超时时间。例如下列代码创建了一个超时时间为3秒的定时消息对话框:Alert alert=new Alert(“First Alert”);alert.setTim
13、eouot(3000);setTimeout()的参数以毫秒为单位 下面的代码创建了一个警告类型的消息对话框:Alert alert=new Alert(“AlertTest”,”Alarm Alert”,null,AlertType.CONFIRMATION)练习:在MIDlet程序中创建Alert消息框,J2ME网络应用软件开发实践,运行结果,J2ME网络应用软件开发实践,高级屏幕对象:List列表 List是显示一组选项的屏幕,用户可以在这些选项中选择一个或多个选项。List列表有三种形式:单选列表、复选列表和隐式列表。在List列表中用户可以通过在选项之间移动来与列表进行交互,这种交互
14、只有在列表选项被选择之后才发生。,J2ME网络应用软件开发实践,List列表有两个构造函数:Public List(String title,int listType)Public List(String title,int listType,String stringElements,Image imageElements)第一个构造函数用来创建一个空的列表,其中参数Title表示列表的标题,listType表示列表的类型。,J2ME网络应用软件开发实践,第二个构造函数除了指定标题和类型外,还能通过数组的形式指定选项的文字和图片 列表的3种类型对应Choice接口中的常量值:Choice.E
15、XCLUSIVE:单选列表,一次只能选择一个选项Choice.MULTIPLE:复选列表,一次可以选择多个选项Choice.IMPLICIT:隐式列表,与单选列表类似,只是选项前面没有选择框标记,并且用户的选择和确认可以使同时进行的,J2ME网络应用软件开发实践,创建空的列表之后,就可以在列表中插入、追加和替换选项。列表中的每个选项都由一个整数索引来表示它在列表中的位置。注意:第一个选项的索引为0 List类提供了以下方法来对选项进行插入、追加和替换:,J2ME网络应用软件开发实践,public int append(String str,Image image)public void ins
16、ert(int elementNum,String str,Image image)public void set(int elementNum,String str,Image image),J2ME网络应用软件开发实践,使用如下方法可以从列表中根据索引删除选项或删除所有选项:public void delete(int index)public void deleteAll()使用如下方法可以根据索引获得对应选项的字符串或图像:public String getString(int index)public Image getImage(int index),J2ME网络应用软件开发实践,
17、使用如下方法可以选取、取消选取或者获得列表当前选中项的索引:public void setSelectedIndex(int elementNum,Boolean selected)public int getSelectedIndex()使用如下方法可以可以获取或者设置列表所有复选项的选取情况:public int getSelectedFlags(Boolean selectedArray)public void setSelectedFlags(Boolean returnselectedArray),J2ME网络应用软件开发实践,练习:信息调查系统,J2ME网络应用软件开发实践,高级屏
18、幕对象:Ticker滚动条 Ticker类用来实现一个滚动条,显示一个连续滚过屏幕的字符串。滚动的字符串可以通过程序设置,但是滚动的方向和速度不能通过程序设定,也不能在程序中控制滚动的开始和结束,这些都是由MIDP实现决定的。Ticker滚动条可以被放置在任何Screen类的屏幕上,而且一个Ticker实例可以在多个屏幕之间共享,当屏幕切换时,信息的显示是连续的,J2ME网络应用软件开发实践,Ticker类的构造函数定义如下:public Ticker(String str)其中参数str是在滚动条中显示的文字使用如下方法可以设置和获取滚动条中的字符串 Public void setStrin
19、g(String str)Public String getString()创建滚动条之后,可以使用Screen类的setTicker()方法把滚动条添加到屏幕上。如果把setTicker()方法 的参数设置为null,则删除当前的滚动条,J2ME网络应用软件开发实践,练习:股票基金显示系统,J2ME网络应用软件开发实践,高级屏幕对象:TextFiled TextField是一个可编辑的文本组件,其创建和使用方法与TextBox类似 TextField的构造函数定义如下:public TextField(String label,String text,int maxSize,int cons
20、traints)其中参数label和text分别表示标题和内容,参数maxSize表示最大能接受的字符个数,参数constraints表示输入约束,约束的定义与TextBox中的约束定义是共享的,J2ME网络应用软件开发实践,使用如下方法可以设置或者获取TextBox当前设置的约束:public void setMaxSize(int maxSize)public int getMaxSize()使用如下方法可以设置或者获取TextField的全部内容:public void setString(String text)public String getString(),J2ME网络应用软件开
21、发实践,另外还有一些方法可以对TextField中的文字进行插入、删除和替换操作:Public void insert(String src,int position)Public void insert(char data,int offset,int length,int position)Public void delete(int offset,int length)Public void setChars(char data,int offset,int length),J2ME网络应用软件开发实践,练习:个人信息管理系统,J2ME网络应用软件开发实践,通用连接框架(GCF)通用连接
22、框架为J2ME程序提供所有网络通信的基础。通用连接框架位于包中,包含1个类、1个异常和15个接口由于网络传送需要输入和输出,所以在实际编程中还要导入java.io包,J2ME网络应用软件开发实践,通用连接框架的API 通用连接框架的核心是Connector类,Connector类用于在GCF中打开不同类型的连接。Connector类的静态方法open()接收一个String类型参数,这个参数标志了请求的连接类型和连接端点。原型如下:Connector.open(”protocol:address:parameters”),J2ME网络应用软件开发实践,GCF支持不同的连接协议。例如连接不同的类
23、型:Connector.open(“socket:/地址:端口”)Connector.open(“http:/.”)Connector.open(“datagrame:/地址:端口”),J2ME网络应用软件开发实践,打开连接读取数据的示例代码如下:String url=“http:/”ContentConnection connection=(ContentConnection)Connector.open(url);InputStream istm=connection.openInputStream();Int len=(int)connection.getLength();If(len!
24、=-1)byte data=new byte(len);istm.read(data);,J2ME网络应用软件开发实践,建立HTTP连接 HTTP连接的创建可以调用Connector类的open()方法。此方法创建并返回打开的连接。在建立连接时,可以使用HttpConnection接口的如下方法来设置请求的方式 public void setRequestMethod(String method):设置请求方式为POST、GET、HEAD等,默认情况下为GET,J2ME网络应用软件开发实践,在建立连接之后,可以使用HttpConnection接口如下操作方法,打开一个输入流,读取服务器中的数据
25、:InputStream openInputStream(String url)与之对应,可以使用如下操作方法,打开一个输出流,向服务器输出数据:OutputStream openOutputStream(String url),J2ME网络应用软件开发实践,在连接到服务器后,可以通过getResponseCode()方法返回服务器的相应代码,如200,404等。,J2ME网络应用软件开发实践,基于HTTP协议的网络软件开发过程1、设置需要的URL URL的格式应该是 scheme:targetparms 其中,scheme表示协议的格式,target表示网络的地址,parms表示相关的参数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2ME 软件 开发 移动 通信 复习
链接地址:https://www.31ppt.com/p-6509122.html