《手机应用程序开发(JavaME)》实验报告学院:信息科学与技术班级:学号:姓名:实验报告评分标准项目要求得分实验准备(30分)实验目的明确5实验内容理解透彻5实验方案/设计完整合理总体框架设计完整15完成相关辅助工作5实验过程(30分)发现的问题5问题的分析15问题的解决方法10实验报告(20分)内容翔实无缺漏5如实记录实验过程10撰写规整5实验总结(10分)实验结果的分析5按照结果对原实验方案的改进意见5实验体会(10分)实验的收获5实验内容的发散考虑5评分标准的说明:1.各子项满足基本要求可计满分;实验要求中给出的评分细项结合评分标准相应计分;2.各个子项中缺少或者完成不佳者,该子项可视情况直接记为0分;3.抄袭实验报告、实验方案、代码、设计或实验结果者,该单项可记0分;4.实验过程中无故缺勤、玩游戏或者做与实验无关内容者,本实验记0分。JavaME开发环境配置实验目的:⑴学会安装和配置JavaME开发环境。熟悉用JavaME可视化开发工具开发简单的MIDlets应用程序。⑵巩固MIDlets知识,熟悉MIDlets的生命周期和开发MIDlet的不同阶段,学会对MIDlet编码、编译、预检验、调试和打包。实验内容:1.安装JDK1.1.直接双击运行就行,提示:安装目录尽量简单,因为后来需要用到这个路径,路径太长以后使用不太方便,比如我的安装路径就是D:\Java1.2.配置环境变量。右击“我的电脑”“属性”“高级”“环境变量”。2.安装WTK2.1.运行下载得到的文件sun_java_wireless_toolkit-2_5_2-ml-windows,安装程序是控制台运行的,没有图形界面。首先是一个长长license声明,最后提示。2.2.然后安装程序会自动监测本机上安装的jdk。2.3.接下来提示选择安装目录。2.4.接下来提示是否可以开始安装。2.5.最后提示表示安装成功,并回到控制台。3.解压Eclipse到指定目录。4.配置EclipseJavaME的环境。5.Eclipse的第一个JavaME项目。实验源码:ProtectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{}protectedvoidpauseApp(){}protectedvoidstartApp()throwsMIDletStateChangeException{}}JavaME高级用户界面实验目的:理解MIDP中GUI实用程序,能编写MIDPGUI应用程序,熟悉MIDP图形系统,能熟练使用Graphics、Display、Form、Item、List、TextBox等类和它们提供的功能。实验内容:1.用List创建屏幕显示对象,编写程序。(10’)2.用TextBox创建屏幕显示对象,编写程序。(10’)3.用Alter创建屏幕显示对象,编写程序。(10’)4.用Form及Item子类,编写程序。(70’)实验源码:1.用List创建屏幕显示对象,编写程序privateListlst=newList(请您选择相应操作,List.MULTIPLE);privateDisplaydis;protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{}protectedvoidstartApp()throwsMIDletStateChangeException{dis=Display.getDisplay(this);dis.setCurrent(lst);lst.append(删除该号码,null);lst.append(向该号码发送短信,null);lst.append(编辑该号码,null);Imageimg=null;try{img=Image.createImage(/img.png);}catch(Exceptionex){}lst.append(将该号码设置为好友,img);Fontf=Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD|Font.STYLE_ITALIC,Font.SIZE_LARGE);lst.setFont(0,f);}}2.用TextBox创建屏幕显示对象,编写程序publicclassMIDlet4extendsMIDletimplementsCommandListener{privateTextBoxtbx=newTextBox(请您输入短信,,255,TextField.ANY);privateDisplaydis;privateCommandcmdGetText=newCommand(获取文本,Command.SCREEN,1);protectedvoidstartApp()throwsMIDletStateChangeException{dis=Display.getDisplay(this);dis.setCurrent(tbx);tbx.addCommand(cmdGetText);tbx.setCommandListener(this);}publicvoidcommandAction(Commandc,Displayabled){if(c==cmdGetText){System.out.println(短信内容为:+tbx.getString());}}}3.用Alter创建屏幕显示对象,编写程序publicclassMIDlet8extendsMIDlet{privateTextBoxtbx=newTextBox(请您输入短信,,255,TextField.ANY);privateDisplaydis;privateAlertalert1=null;publicMIDlet8(){Imageimg=null;try{img=Image.createImage(/alert.png);}catch(Exceptionex){ex.printStackTrace();}alert1=newAlert(提示,有短信,请您编辑,img,AlertType.INFO);}protectedvoidstartApp()throwsMIDletStateChangeException{dis=Display.getDisplay(this);alert1.setTimeout(5000);dis.setCurrent(alert1,tbx);}}4.用Form及Item子类,编写程序privateFormmainForm=newForm(这是一个含有ChoiceGroup的Form);privateDisplaydis;privateChoiceGroupcg1=newChoiceGroup(选择性别(单选),ChoiceGroup.EXCLUSIVE);privateChoiceGroupcg2=newChoiceGroup(选择性别(菜单),ChoiceGroup.POPUP);privateChoiceGroupcg3=newChoiceGroup(选择爱好(多选),ChoiceGroup.MULTIPLE);}protectedvoidstartApp()throwsMIDletStateChangeException{dis=Display.getDisplay(this);dis.setCurrent(mainForm);mainForm.append(cg1);cg1.append(男,null);cg1.append(女,null);mainForm.append(cg2);cg2.append(男,null);cg2.append(女,null);dis.setCurrentItem(cg2);mainForm.append(cg3);cg3.append(打球,null);cg3.append(唱歌,null);}}JavaMERMS应用实验目的:理解MIDPRMS(记录管理系统)的角色及其作用,能用RMS类打开记录存储、把记录加入到记录存储、从记录存储中删除记录、枚举记录存储中记录以及关闭记录存储。实验内容:编写用户界面(10’),提供增(insert)删(delete)改(update)查(select)功能(20’),提供数据显示方法(30’),完成上述功能的代码(40’)。实验源码:publicclassMIDlet5extendsMIDletimplementsCommandListener{privateCommandcmdDel=newCommand(删除,Command.CANCEL,1);privateCommandcmdAdd=newCommand(添加,Command.SCREEN,1);privateFormfrm=newForm(电话簿界面);privateChoiceGroupcg=newChoiceGroup(电话簿,ChoiceGroup.EXCLUSIVE);privateTextFieldtfPhone=newTextField(输入电话,,20,TextField.PHONENUMBER);privateTextFieldtfSearch=newTextField(查找电话,,20,TextField.PHONENUMBER);privateDisplaydis=null;privateRecordStorers=null;privateRecordListenerlistener=newRS1Listener()protectedvoidstartApp()throwsMIDletStateChangeException{dis=Display.getDisplay(this);dis.setCurrent(frm);frm.addCommand(cmdDel);frm.addCommand(cmdAdd);frm.append(cg);frm.append(tfPhone);frm.append(tfSearch);frm.setCommandListener(this);this.initList();}publicvoidinitList(){cg.deleteAll();try{rs=RecordStore.openRecordStore(RS1,true);rs.addRecordListener(listener);RecordEnumerationre=rs.enumerateRecords(null,null,false);while(re.hasNextElement()){byte[]data=re.nextRecord();Stringphone=newString(data);cg.append(phone,null);}}catch(Exceptionex){}finally{try{rs.closeRecordStore();}catch(Exceptionex){}}}publicvoidcommandAction(Commandcmd,Displayabledisplay){if(cmd==cmdDel){intselectedIndex=cg.getSelectedIndex();StringselectedPhone=cg.getString(selectedIndex);try{rs=RecordStore.openRecordStore(RS1,true);rs.addRecordListener(listener);intnextRecordId=rs.getNextRecordID();for(inti=1;inextRecordId;i++){try{byte[]data=rs.getRecord(i);Stringphone=newString(data);if