【聚杰网移动开发】Eclipse开发J2ME程序之仿真机发布
在上一篇文章介绍了HelloWorld程序的开发过程,虽然这是一个经典的程序但并不具备任何实质性的功能而且只是在模拟器中仿真运行。经过这么长时间的学习,本文中要向读者在这段时间的学习有所交代,最起码应当让读者能够开发出一个具备简单功能的能够在真机运行的J2ME手机应用程序,也好以此向周围的同学、同事炫耀一番。相信赢得些许羡慕的目光应该不是什么难事。好了,闲话暂且不提,先简单介绍一下本文将要介绍的知识点。
本文将通过一个简单的J2ME程序"整蛊专家"的开发向读者介绍信息框的显示、命令按钮的添加、通过文本框与用户的交互、对命令按钮的响应以及对所开发应用程序的打包发布等主要内容。最终展现给读者的将是一个能够在真机运行的J2ME手机程序。
程序的设计
首先,按照上一篇文章介绍的知识创建J2ME项目Test并添加MIDlet到其中。现在就在EclipseMe生成的框架代码基础上将下面阴影显示的功能代码添加到相应位置:
在讲述这段代码之前首先介绍一下MIDlet的生命周期:一个MIDlet在其生命周期中共有三种状态,分别是暂停、活动和停止。MIDlet被加载后首先是处于暂停状态,在J2ME调用startApp()方法后转入活动状态。通常情况下应用程序是不必考虑如何控制其运行状态的,其状态的切换由手机来决定。例如,在程序运行过程中如果有电话呼入则会自动转入暂停状态而无须在与用户交互后才能做出判断。最后,当用户按下手机的取消键时,MIDlet将进入停止状态。
在Test类的构造函数中首先得到当前MIDlet的Display对象,以便进行界面显示。随后通过new操作符新建项目将要用到的命令按钮、文本框等高级用户界面类的对象。在创建命令按钮时,可以通过参数指定所要创建的命令按钮种类。在TextBox类方法addCommand()将其添加到文本框后需要继续调用setCommandListener()方法以开始命令的侦听,否则创建出来的命令按钮仅仅是个无法响应任何操作的摆设。由于需要处理按键,因此在这里必须实现CommandListener接口并处理commandAction方法,该方法的具体实现过程稍后在进行介绍。
为了在程序开始之初启动程序封面,以显示版权信息、软件介绍等简介性质的文字或画面,需要在startApp()方法中添加相应的代码。这里是通过信息框来实现这一功能的。首先新建一Alert对象,并设置标题、内容信息和信息框类型。通常我们更习惯在按键之后再进入面,为了实现这一效果可以在调用setTimeout()方法时指定FOREVER这一属性参数。设置完毕后通过Display的setCurrent()方法指定该信息框为当前显示界面。
本程序具有用户交互功能,用户可以通过输入要查看短信的序号来阅读不同的短信内容。为实现该功能就要在commandAction()方法中添加代码进行处理。由于本程序添加有两种不同功能的按键,因此首先需要对第一个参数进行检查以区分当前执行的是退出命令还是确定命令。如果按下的是后者,再通过第二个参数得到用户通过键盘在文本框录入的字符并进行检测判断,对于习惯了C++编程的开发人员需要注意,在判断字符变量是否与其他字符相等时不能使用"=="操作符而要使用String的equals()方法进行判断。剩下的工作就是再以信息框将用户需要的短信显示出来即可,具体实现过程与前述方法类似。
Eclipse在代码编写过程中会动态检查错误,在出现错误后,可以将鼠标移到在出错代码左侧的错误图标上双击鼠标,将弹出如上图所示的更改建议,用户可以在其上双击鼠标接受其建议,在右侧浮动窗口显示的代码将自动添加到适当的位置。




