1、系统的手机目前比较常见的是Nokia、三星、西门子2.WindowsMobile (windows CE)操作系统3. iOS系统: iphone系列手的操作。4 Palm系统5. .Android系统.新型手机操作系统,支持无线互联网技术。主流的手机编程体系: Midp Adriod本课程以MIDP手机程序设计为框架展开。编程工具WTK2.5,它要求jdk版本为1.5版以上。用WTK开发一个手机程序的过程: 新建一个项目(new project),完成后结果:注意以下三个信息:Place Java source files in C:WTK25apps演示程序src 将java源程序放在C:
2、WTK25apps演示程序src文件夹中。只有将源程序放在这个位置上,才能被WTK找到并编译。Place application resource files in WTK25apps演示程序res将项目所需的资源文件(如图片)存放在C:WTK25apps演示程序res文件夹中,只有这个文件夹中的资源文件才能被WTK读出。Place application library files in WTK25apps演示程序lib这个文件夹中存放外来的库文件(略)按以上要求存放文档后,就可以编译程序(Build),编译过程中可能产生错误,那么必须改正源程序中的错误,再编译,直到程序无错为止。运行程序(
3、Run)。手机程序结构:import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class DEMO extends MIDlet public void startApp() public void pauseApp() public void destroyApp(boolean b)以上是一个最简单的手机程序,它可以表明一个手机程序的基本结构:1. 手机程序由若干类(class)构成从java程序的观点,类应如下:class 类名2. 在若干类中,必须且只能有一个主类。它是程序中最开始执行的类
4、。主要类有两个标志:public、必须扩展于MIDlet类。3. java类的写法:变量声明;/可有可无,可多可少函数声明;变量是程序运行过程中用于存放数据的空间,这些空间是以变量的形式出现,变量需要声明类型名 变量名int x,y; 声明了x,y两个整型变量,存放整数。double z; 声明了一个浮点型变量z,存放实数。char c; 变量c中存放一个字符String str; str可以存放一个字符串。函数,由一组语句构成的程序段。 值类型 函数名(参数表)函数体;如:public void destroyApp(boolean b) X=7;函数是对数据的加工过程,它由名称、参数表(加
5、工的原料,也就是被计算的数据)、值类型(加工结果的类型)以及函数体(加工过程)。考查手机程序: public void startApp()这个手机程序是一个类,名字是DEMO,它是扩展于MIDlet类。类中没有声明变量,声明了startApp、pauseApp和destroyApp三个函数。三个函数都没有函数体。可见,作为一个手机程序必须是一个java类,而且必须扩展于MIDlet类,声明startApp、pauseApp和destroyApp三个函数。在手机程序中,可能会用到一些其他类,如MIDlet,在程序中必须导入(import)这些类。MIDlet类就在javax.microedit
6、ion.midlet包(文件夹)中。*表示所有类。类似于C中的 #include的作用。第三讲 在手机程序中的三个函数是与手机上的一些事件相关联的,当手机程序运行过程中发生了某些事件时,系统就会自动调用这些函数。startApp函数:当手机程序运行时,首先初始化(构造函数,init函数),然后自动调用该函数。所以它是一个程序的入口部分,所以一个程序的功能代码将从这个函数开始。pauseApp函数:当一个手机程序运行时,如果有了电话呼叫、短信息,这时系统会暂停本程序,暂停本程序之前,自动调用该函数。因此在接听电话或阅览短信之前,程序应该做的准备工作代码可以写在该函数中。destroyApp函数:
7、在程序即将结束时,调用的函数。在这个函数中, 可以设计一些程序的善后处理代码。程序中这三个函数是必不可少的,除此之外,程序还可以设计其他的函数甚至其他类。在手机上显示文本框: Display display; TextBox tb=new TextBox(“标题”,“正文”,200,0); display=Display.getDisplay(this); display.setCurrent(tb); 可以显示在屏幕上的对象必须是Dispalyable类的子类的对象。1 声明并创建TextBox对象。TextBox tb=new TextBox(“标题”,“正文”,200,0);TextBo
8、x生时必须给出四个参数:标题,正文,最大长度,输入限制。2.取得显示屏幕Display disp=Display.getDisplay(this);3.将可显组件设置到屏幕。 disp.setCurrent(tb);第四讲: 手机程序中的菜单(命令项)。 MIDP中的菜单是由Command类实现。 声明并产生命令项的方法: Command c; C=new Command(“文字”,命令型态,优先级); 或者 Command c=new Command(“文字”,命令型态,优先级) 以上的语法中,命令型态: 命令类型可以是下列8个值之一 Command.BACK:返回前一屏幕; Command
9、.CANCEL:取消当前正在进行的工作; Command.STOP:中断当前正在运行的动作。 Command.EXIT:退出应用程序; Command.HELP:请求在线帮助; Command.ITEM:选择命令是当前屏幕中的某一项; Command.SCREEN:应用到当前屏幕的命令; Command.OK:确定当前正在进行的动作;不同型态的命令将出现的位置不同。优先级部分表现为一个整数,整数越小,优先级越高。命令项产生后,可以用addCommand()函数将命令项设置到Dispalyable(如TextBox).命令型态决定命 令选项出现的位置:命令项出现在屏幕最下行。点中两个软件按钮,就
10、可以选中某个菜单。左边永远只能出现一项菜单。其他菜单都会出现在右边,其他菜单如果有多项,则折迭成一个menu多级菜单。所以,使用频率最高的菜单应该设计在左边。BACK、CANCEL、STOP和EXIT型态的菜单可以出现在左边,其他四种型态只能出现在右边。总结,各种菜单项出现的规律: 型态决定位置,如果把型态也理解为一种优先的话,那么上述八种型态的优先级别是依次降低的。高四级可以出现在左边。除型态之外,型态相同的前提下优先级可以决定各菜单出现次序。Command c=new Command(“文字”,命令型态,优先级)优先级值越小,越先出现。即: 菜单出现的次序是:先决定于型态;型态相同时,决定
11、于优先级;型态和优先级都相同,则决定于在程序中添加的次序。菜单响应: 当用户选定了某菜单时,都应该产生某一个动作。程序中总需要将某些代码的执行与某菜单相联系,这就是事件模型。MIDP中的事件模型: 事件,是手机中某状态改变。这些事件有些是由系统产生的,如手机程序被呼叫中断。有些事件是人为产生的,如按下了某按键。 系统事件的响应,由系统负责,如startApp,pauseApp,destroyApp函数的调用就是如此。但人为产生的按键事件,必须在程序中将事件与动作(函数)对应。这种编程规律,就是事件模型。public class MyMIDlet extends MIDlet Display disp; TextBox tb=new TextBox(TextBox演示程序,天气真好.,256,1) ; Command comm1=new Command(退出,Command.SCREEN,2),comm2=new Command(还原,Command.SCREEN,1), comm3=new Command(清除,Command.EXIT,2),comm4=new Command(选
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1