1、基于J2ME的手机记事本的设计与实现摘 要:随着信息化、智能化的社会高速发展,手机对我们的影响也日益增强,人们对手机功能要求逐步提高,为了让用户能随时很好的保存重要的事情、信息,得到及时的提醒,设计了一个功能相对健全的记事本。该软件的主要功能有:添加待办事项、查看编辑事项、按要求删除事项、设置事项的优先级和闹铃提示。为了软件不至于单调,在背景图,和壁纸上加了点小功能,例如:能够设置动态壁纸,加入有限的幽默名言,在有限的范围内选择自己喜欢的壁纸等。本软件操作简单,已知漏洞很少,适合一般用户记录信息,管理信息等。关键词:手机;J2me;记事本; JavaDesign and Implementat
2、ion of Mobile Phone Notepad Based on J2MEWei Zheng, Department of Electronic InformationAbstract: With the development of information and interlligent society,the mobile phone is becoming more and more important,and peoples demand of function gradually improved.In order to let user save anything at
3、any time,and user can remind timely,I designed a basic functions Notepad.The main functions of the softwave:add todo,view or edit todo,accoord to the request to delete todo,set priority and quarter-bell of the tode.For fun I added some small functions on the background and wallpaper.Example:you can
4、set dynamic wallpaper,learn some well-known saying and humor quotes,select the wallpaper which you like in limited range and so on.This softwave has simple operation and a few bugs.For the general user record and manage informations.Key words: Mobile phone;J2ME;Notepad;Java目 录第一章 引言1第二章 可行性分析22.1 对手
5、机记事本开发的理解22.2 可行性分析22.2.1.技术可行性22.2.2.经济可行性22.2.3.操作可行性2第三章 需求分析33.1 系统目标33.1.1.开始界面33.1.2.功能33.2 需求分析33.2.1 用户需求33.2.2 功能分析3第四章 概要设计44.1 系统功能模块设计44.2 开始界面设计54.3 其他界面设计74.3.1.添加编辑界面74.3.2.查看事项界面74.3.3.剪贴板界面74.4 操作流程74.5 数据库RMS的操作与设计84.5.1 总体E-R图94.5.2 数据结构及表的定义9第五章 详细设计105.1 开始界面模块的设计105.2 记事本模块的设计1
6、05.3 其他模块设计11第六章 系统测试和结果分析146.1 系统测试思路146.2 系统测试项目146.2.1 开始界面的测试146.2.2 主功能界面的测试156.2.3 添加编辑界面的测试156.2.4 查看界面的测试156.2.5 剪贴板界面测试166.2.6 闹铃提示功能的测试166.3 测试结果16第七章 总结17参考文献:18鸣谢1921第一章 引言现如今手机已经成为了每个人必备的通讯工具,随着3G技术和智能手机的出现和完善,人们对手机的功能需求与日俱增,取代电脑的地位也未必是空谈。因此手机上的软件能够深入人心,得到人们的青睐,才是一个手机软件开发人员的最终目标。看看“水果忍者
7、”这款游戏的发展就可想而知,可谓是一夜爆红。如果能从小白用户的角度去考虑设计软件,相信一定会成为给用户带来便利的好产品。我们都知道,随着安卓系统手机的飞速发展,J2me几乎已经没有用武之地,但是我相信如果能做好J2me的产品,那么对于Android平台的开发也一定不是问题。而且用J2me设计出的东西也可以移植到Android平台。很多东西都是相通的,所以努力学习好这门语言,对我们以后会有很大帮助。由于技术还是太弱,所以此次开发了一个功能比较简单的记事本。本次设计的系统是面向所有的支持java语言的手机用户,功能简单适合各种年龄阶段的人使用。为了让很多不懂手机的用户也能使用,已经尽量设计简单,没
8、有太多的漏洞,相信如果不是软件测试或者蓄意找错,只是正常使用不会有问题。不过设计的时候根据自己的口味精心挑选的背景壁纸,可能会引起一部分人的反感,但是如果以后真的被实际使用的话,会重新制作一个大众版,来迎合各种用户的需求。手机可真是一个伟大的发明,如今人们对于手机的依赖可以说是无法割舍了,的确手机在很多方面给了我们好处,方便。现在的手机不仅功能齐全,强大,而且价格也不是很高,就是人们现在常说的性价比很高啊。现在的人们用手机的相关代替了许多以前的东西。有句话说的很多,人有惰性才能创造,就是希望能变得舒服方便,才会想方设法去寻找方便,创造方便。不像走路了,于是有个交通工具;不想写信了,于是有了电子
9、信息;不像记路了,于是有了GPS导航;不想带着厚实的记事本了,于是手机上有了记事本。记事本到了手机上,就多了许多优点,最明显的是不会忘记了,能随时得到提醒。方便管理了,不需要每天带着小本子了。优点固然很多,但是也有缺点。很多人把事情记录到手机以后自己就完全的不去记忆,如果意外丢失了手机,或者损坏,那会相当麻烦。这里只是给大家提个醒,不要完全依赖手机,不管怎么样,软件我们还是需要用心去设计的,因为现在手机上的小软件各种各样,不胜枚举,如果没有什么创新或者优点的话,绝对会很快被无视的。第二章 可行性分析2.1 对手机记事本开发的理解在开发软件之前,首先要清楚对于手机记事本软件的认识,它通过合理的管
10、理把用户记录的信息及时有效的给用户提醒帮助。让人们更放心的生活。手机记事本的开发主要是利用Java语言的面向对象特点,将软件的模块化,每个模块之间有较高的独立性。然后将这些模块设计成对象进行封装,把用户的需求抽象成软件的需求,通过了解软件的需求来设计。用代码来实现设计,然后调试运行确认可以投入使用。不过如果严格按照软件开发的步骤来进行开发,对于一个大型软件绝对是无可厚非的,但是像我们这种个人完成的设计,有时候随意起来可能会有意想不到的收获,突然迸发的灵感和创意等等,所以本人在设计的过程中没有刻意拘谨于这个开发过程。2.2 可行性分析2.2.1.技术可行性设计该程序不需要对J2me语言有太深的了
11、解,够用就好。其次就是需要对开发环境和开发工具多熟悉和了解了。这些在平时上课学习的过程中已经有了一定基础,所以可行。2.2.2.经济可行性这个就更加不用多作说明了,只需要一台安装好开发工具Eclipse和手机模拟器WTK的电脑就行,除了花些时间,不需要额外的费用,完全可行。2.2.3.操作可行性界面设计需要考虑最普通用户的习惯,在有限的空间以简洁美观为目的设计程序。所以不需要太复杂的功能,数据存储方面使用RMS数据库,没有问题。第三章 需求分析3.1 系统目标对于开发后要实现的功能,在写开题报告的时候已经做了初步构想,开始设计之后在一些小的地方有了新的想法。3.1.1.开始界面设计时也参照了别
12、人的设计作品,很多是为了简洁直接进入功能界面,考虑了简洁,只能在简洁的基础上加上一个界面加一点创意,避免单调。开始界面是由20张可以互相替换的壁纸组成,可以根据喜好选择其中一张做背景,可以选择纯图片,也能设置成动态幻灯,每三秒更换,每一分钟一个循环。不同的背景图显示不同的信息。大部分只是显示时间,设计的复杂一些的能循环显示待办事项,每天更换一句幽默笑话或者格言,虽然存入的数据有限。3.1.2.功能功能界面总体分4个小功能模块,主界面是列出所有的待办事项,方便用户查看。从模块看,主界面模块,能进行待办事项的添加、编辑、删除、更改标记等操作;添加、修改模块,编辑待办事项的内容,设定待办事项的优先级
13、,选择是否添加闹铃;查看待办事项模块,显示待办事项的内容,时间和优先级,可以进行编辑、修改、删除等操作;剪贴板模块,对已经复制的最近5条以内的内容进行管理,主要操作有编辑,删除、清空。由于没有存入本地,所以关闭手机同样清空。从功能看,能对已设定好的待办事项进行编辑、删除、标记、删除符合要求的事项等,整体按照优先级排序;对每个事项能进行设定优先级,闹铃;提供复制粘贴功能,遗憾是没有做到能自由复制。3.2 需求分析3.2.1 用户需求本系统是面向所有年龄阶段的用户。设计时考虑的角度也是从手机小白用户的角度去思考,尽量将界面简洁化、操作简单化、功能明确化、漏洞最少化,简单的操作让刚刚会使用手机的用户
14、都能很快学会使用。系统主要是提供记事本功能,所以从用户的角度考虑,多余的小功能越少越好,如果功能繁琐,反而会让用户心生厌倦。3.2.2 功能分析考虑了用户使用时的心情,没有过于复杂繁琐的功能,直接进行主要操作。最基本的是要能够实现待办事项的添加、编辑、删除。只要懂得这些操作,使用该系统已经完全没问题了。然后在此基础之上又进行了一些功能上的拓展,以满足更多的用户要求,每个待办事项的都有优先级和设置闹铃的属性。待办事项会按照优先级排序,用户可以优先处理排名考前的事项。可以对每个事项选择不设置,安静的提示,闹铃提示三种方式。还有考虑到一些小的细节,增加了剪贴板的功能,虽然没有做到完美的自由复制,但是
15、也带来了一些方便。在开始界面设计了壁纸,为系统增加一点点乐趣。第四章 概要设计4.1 系统功能模块设计系统主要分为以下几个模块:开始界面模块、待办事项模块、添加编辑模块、查看事项模块、剪贴板模块。其功能模块图如下(图4-1):手机记事本开始界面模块待办事项模块添加编辑模块查看事项模块剪贴板模块设置动态壁纸添加编辑删除标记优先级复制粘贴编辑删除标记优先级图4-1 总体结构图在总体结构图中说明了系统的几个主要模块和每个模块的主要功能,以及模块在系统中的主要作用。也同时看出系统结构简单,容易操作、使用。一切浮华的东西都是浮云,记事本功能齐全才是正事。主界面是显示所有已经存在的待办事项,对于待办事项的
16、大部分操作均能在这个界面执行,可以添加待办事项、查看编辑待办事项、删除单个或者按要求删除多个代办事项、标记或取消标记已完成。这功能介绍了不止一遍,还是看图看的明白(图4-2)。主要功能界面添加编辑事项查看待办事项删除待办事项标记待办事项添加编辑编辑删除标记删除单个事项批量删除按标记删除按时间删除全部删除标记为已完成取消标记已完成图4-2 功能结构图4.2 开始界面设计本系统最主要的两个模块是开始界面和主要功能界面两个模块,最复杂的也是这两个模块,所以在这里作主要介绍和解释。在很多已经完成的手机记事本实例中,大多都是没有开始界面,而直接对待办事项进行操作的,这里为了能更直观的体现本软件的创意元素
17、,所以增加了开始界面,所幸不会占用用户太多感情,如果不喜欢可以全然不用理会直接进入主要功能界面,不会耽误太多时间。在开始界面总共有20张壁纸,可以通过左右键进行控制选择,也可以设置更为动态壁纸,算是一个小小的创意。然后每张图都是做过处理,毕竟时间精力有限,只有部分图制作的比较用心,可以显示更多的信息,比如年月日,星期,时间,备忘记事的循环提醒,每日一句幽默名言等等。偷懒一点的就只增加了时间信息。每张图片都可以通过用户按下OK键进行选择使用含有信息的图片或者纯图片。这里是另外一个创意,而且每张图的创意都不相同,希望能给用户带来快乐。下面是开始界面模块的操作流程图(图4-3),以及选择了几张自己认
18、为创意比较好的壁纸,也相当于调试运行结果的截图给大家(图4-4)。开始界面选择模式幻灯片模式或选择壁纸OK键选择纯图片模式或时间信息模式动态壁纸正常图4-3 开始界面操作流程图 原图片 按OK键后 原图片 按OK键后图4-4 一些创意壁纸图片还是不能贴太多的,一会在程序测试的介绍里可以贴上另外的一些壁纸。4.3 其他界面设计4.3.1.添加编辑界面其他界面中最值得一提的是添加编辑界面,界面由一个TextField和两个ChoiceGroup然后缀上的一张图片组成。这TextField自然是用来编辑文字内容的,两个ChoiceGroup,一个是用来选择待办事项的优先级,一个是确认是否设置闹铃,如
19、果选择了“安静”或者“闹铃”项,会插入一个DateField用来给用户设置时间。在本界面还可以通过“粘贴至段尾”来进入剪切板进行操作。至于为什么是“粘贴至段尾”而不是“粘贴”,则是因为程序无法使得想粘贴的内容插入TextField的中间。4.3.2.查看事项界面在此界面可以完整浏览事项,可以看到待办事项的优先等级,如果事项有设置闹铃的话则可以看到事项的时间。在此界面可以针对所浏览事项进行编辑、删除、更改标记等操作。4.3.3.剪贴板界面此界面主要是用来管理用户已经复制的最近5条内容,可以对已复制的内容进行编辑、删除、清空等操作。缺点是不能自由复制粘贴,关机后不能保存(图4-5)。为了更好的展现
20、,此处附上几张图: 图4-5 部分运行截图4.4 操作流程在这里介绍一下操作的步骤,也顺便告诉用户如何正确是使用本系统。为了更好的说明,这里绘出了系统的操作流程图(图4-6)。流程图有些不合规范,不过相信操作方法表达的应该已经清楚了,在主界面可以进行的操作主要是添加待办事项、查看编辑待办事项、删除单个或者按要求删除多个待办事项,更改待办事项标记等。开始界面设置壁纸主界面开始添加编辑界面删除复制粘贴查看标记已完成或者未完成设置优先级、闹铃重新排序刷新返回主界面删除单个事项或按要求删除多个事项剪贴板更多操作结束是否添加删除查看标记操作方式图4-6 操作流程图4.5 数据库RMS的操作与设计J2me
21、的记录管理系统(RMS)提供了一个类似文件系统的环境,用来存储和维护小型设备中的持久性数据。设计一个游戏也许不需要用到数据库,但是一个需要对大量数据进行读取、修改、删除、保存操作的软件,数据库的处理可以一个关键。有人把数据库描述成为“按照数据结构来组织、储存和管理数据的仓库”。但是管理起来却要小心谨慎,存储数据和提取数据时要转换成合适的数据类型,打开关闭操作的时候一个不小心就会抛出异常。但是麻烦归麻烦,只要一旦运用熟练,对你程序的封装和健壮性有很大帮助。4.5.1 总体E-R图本系统总共使用了4个数据库,RS1、RS2、RS3、RST。其中RS3就是纯粹的存储数据,而对RS1、RS2、RST的
22、操作是平行的,这三个有关联的可以看作的同一个数据库,这里就简单的用E-R图来说明它们的关系(图4-7):待办事项时间优先级设置设置闹铃1111图4-7 总体E-R图4.5.2 数据结构及表的定义表4-1 待办事项表字段名数据类型长度说明待办事项ANY370优先级NUMERIC1时间NUMERIC14此数据库的缺点就是没有主键,所以两个待办事项可能是重复的,如果两个待办事项的内容和优先级都是相同的,那么对这两个待办事项的其中一个操作的时候会出现错误。这点目前仍没有找到很好的方法解决,非常遗憾。第五章 详细设计5.1 开始界面模块的设计开始界面的主要是一个ClockTodoCanvas类,下面来详
23、细介绍一下。此类的功能是绘制本系统的开始界面。总共设计了20个不同风格的界面,而且与数据库相连,能够显示已经添加的待办事项还有一些幽默笑话、名言名句。每个界面都有纯图片和显示信息两种模式,按下OK键即可以切换。也可以设置为动态显示,每隔3秒钟壁纸会更换,一分钟幻灯则循环一次。ClockTodoCanvas类的具体设计如下面两个表(表5.1和表5.2)所示。表5.1 ClockTodoCanvas类成员变量表描述 变量类型 名称屏幕或者图片宽度 int w屏幕或者图片高度 int h动态壁纸编号 int skin读取系统年月日 int day动态壁纸开关 boolean slide壁纸模式的选择
24、 boolean view背景或者元素图片 Image taiga启用系统线程模仿时间 Thread th设置画笔的字体 Font f连接数据库 RecordStore rs进入记事本界面 Command cmdOk切换动态壁纸 Command cmdSlide恢复正常模式 Command cmdCalm存放读取的数据 String phone表5.2 ClockTodoCanvas类方法表名称 功能 备注ClockTodoCanvas() 连接图片创建画布 类的构造方法Paint() 绘制壁纸等元素 Canvas类自带方法keyPressed() 按键监听 识别按键run() 获取时间和数据
25、 线程主要方法commandAction () 按键处理 处理监听到的事件5.2 记事本模块的设计记事本主要是一个ClockTodoMIDlet类来实现的,下面进行详细介绍。本类是该系统最主要的类,基本上记事本的所有功能都在这里实现,可以说是完全独立的,本类实现了对待办事项的添加编辑、查看删除、标记等等。可以对每个待办事项设置闹铃。在主Form界面安优先级排序显示。ClockTodoMIDlet类的具体设计如下面两个表(表5.3和表5.4)所示。表5.3 ClockTodoMIDlet类成员变量表描述 变量类型 名称显示类中控件 Display dis对待办记事的处理 Command cmdD
26、el 添加显示记事 Form frm选择优先级 ChoiceGroup cg编辑待办记事 TextField tfPhone连接数据库 RecordStore rs读取用户设置时间 DateField df启用系统线程模仿时间 Thread th存放读取的数据 String s表5.4 ClockTodoMIDlet类方法表名称 功能 备注ClockTodoMIDlet() 连接图片添加数据 类的构造方法startApp() 设计Form界面 MIDlet类自带方法initList() 初始化数据 刷新数据run() 获取时间和数据 线程主要方法commandAction () 按键处理 处理
27、监听到的事件5.3 其他模块设计本系统在设计方面有些缺憾,系统的所有东西主要由以上两个类实现,另外还有两个类ShearPlate 类和Source 类。分别是用于构建简单剪贴板和简易音乐播放的作用。在这类就不多说了,尤其是剪贴板的代码没有完善,不长,可以给大家共享一下。希望我没有实现的缺憾有高手能给予指点。public class ShearPlate extends Form implements CommandListenerprivate ChoiceGroup cg = new ChoiceGroup(, ChoiceGroup.EXCLUSIVE);private TextBox t
28、b = new TextBox(剪贴板, , 370, TextField.ANY);private Command cmdClear = new Command(清空, Command.CANCEL, 4);private Command cmdEdit = new Command(编辑, Command.CANCEL, 2);private Command cmdDel = new Command(删除, Command.CANCEL, 3);private Command cmdOver = new Command(取消, Command.CANCEL, 1);private Comma
29、nd cmdCopy = new Command(确定, Command.BACK, 1);String s=,s1=,s2=,s3=,s4=;ClockTodoMIDlet m;int a,b,select;public ShearPlate(String title,ClockTodoMIDlet m) / TODO Auto-generated constructor stubsuper(title);this.m=m;this.addCommand(cmdCopy);this.addCommand(cmdOver);this.addCommand(cmdClear);this.addC
30、ommand(cmdDel);this.addCommand(cmdEdit);init();this.append(cg);this.setCommandListener(this);tb.addCommand(cmdOver);tb.addCommand(cmdCopy);tb.setCommandListener(this);public void init()int cs = cg.size();cg.deleteAll();for(int i=0;ics;i+)if(i=0)cg.append(s, null);if(i=1)cg.append(s1, null);if(i=2)cg
31、.append(s2, null);if(i=3)cg.append(s3, null);if(i=4)cg.append(s4, null);public void cappend(String ss)s4=s3;s3=s2;s2=s1;s1=s;s=ss;cg.append(s, null);init();public void commandAction(Command c, Displayable d) / TODO Auto-generated method stub if(c=cmdOver) if(d=tb)this.m.dis.setCurrent(this); else th
32、is.m.paste();else if(c=cmdCopy)select=cg.getSelectedIndex();if(d=tb)cg.set(select, tb.getString(), null);this.m.dis.setCurrent(this);else this.m.paste(cg.getString(select);else if(c=cmdClear)cg.deleteAll();this.m.remove();this.m.paste();else if(c=cmdDel)select=cg.getSelectedIndex();cg.delete(select)
33、;if(cg.size()=0)this.m.remove();this.m.paste();else if(c=cmdEdit)select=cg.getSelectedIndex();tb.setString(cg.getString(select);this.m.dis.setCurrent(tb);boolean isClear()if(cg.size()=0)return true;return false; 第六章 系统测试和结果分析6.1 系统测试思路系统测试是软件开发一个相当重要的一环,如果在此发现了比较大的问题,很有可能需要从长计议,从头在设计一遍。软件测试的目的就是尽可能的
34、发现错误,一般来说测试的工作不能由程序的设计者来做,最好是什么都不懂的小白来操作的效果是最好的。通常测试的方法有两种:黑盒测试和白盒测试。这次本人的测试思路主要有三个,一是单元测试,二是集成测试,第三就是比较盲目的、破坏性的、不断的、大量的操作来测试系统的健壮性,最后就是对系统的功能是否良好完整进行测试。单元测试,检查测试代码中的漏洞和错误。这个测试一般在程序设计的过程中已经做过不少,一般是在系统运行调试出现错误时,在代码中插入标记性的输出语句,来找出产生错误的具体原因,不断修改调试。集成测试,相当于单元测试的扩大化,把没经过测试的模块加入到已经测试过的模块中去,每加入一个模块进行一次测试,直
35、到所有模块组装成功。.健壮性测试,在一个界面持续的大量的重复或者胡乱操作,看看系统是否会发生错误,检查系统的健壮性,如果发现异常则及时找错进行处理。功能测试就比较理智了,运行调试程序,测试结果是否与预测的理想结果相符,需要设想到多种情况来进行测试。6.2 系统测试项目这次测试的主要目的是检查运行结果和系统功能。主要测试以下几个模块:(1)开始界面的测试(2)主功能界面的测试(3)添加编辑界面的测试(4)查看界面的测试(5)剪贴板界面的测试(6)闹铃提醒功能的测试6.2.1 开始界面的测试在开始界面主要是验证动态壁纸功能的实现和切换壁纸模式功能的正确性。部分运行截图如下(图5-1): 图5-1
36、开始界面运行结果在开始界面,如果点击左侧的按钮“动态壁纸”,则会有共20张壁纸动态显示,每分钟一个循环。按下OK键的话每个图片的模式就会改变。6.2.2 主功能界面的测试本界面需要测试的内容比较多,需要检查程序的所有功能,添加编辑、删除标记等等。还要持续的测试,看看是否能够发现错误。以下是主界面的运行情况的部分截图(图5-2): 图5-2 主功能界面运行结果可以看到主界面的优先级排序功能是正常的。然后删除单个或者多个事项的时候会有提示出现,在菜单中的6个按钮的功能均是正常的,在有限范围的测试下,系统尚未出现明显错误。6.2.3 添加编辑界面的测试在添加界面下主要测试设置优先级、闹铃等功能是否正
37、确,还有就是对TextField的复制粘贴功能,下面是运行结果的部分截图(图5-3): 图5-3 添加编辑界面运行结果在截图中可以清楚的看到,TextField中输入文字正常,设置改变优先级正常,点击“安静”或者“响铃”选项下面会正常出现DateField供用户设置时间,而且复制粘贴功能正常,且能弹出复制成功的提示。6.2.4 查看界面的测试本界面最要测试显示的内容正确与否,以及对单个待办事项的相关操作:编辑、标记、删除功能是否正常。其实这些功能代码基本上与主界面上相通,所以不会出现太大的问题,经测试一切功能正常。运行情况如图5-4。6.2.5 剪贴板界面测试在本界面主要测试对用户已经复制的最
38、近5条内容的操作是否能正常执行,主要实现的功能是对已复制内容的编辑、删除、清空等操作。以下是运行时的截图(图5-4): 查看界面测试 剪贴板测试 闹铃测试图5-4 运行结果6.2.6 闹铃提示功能的测试此项测试主要检查到时能否准时提示,提示以后是否能查看所提示的待办事项,测试结果正常,运行结果见图5-4。6.3 测试结果比较遗憾的一点是没能在真机上运行成功,不知道什么原因无法识别,所以无法告知真机的测试结果。在模拟器上,经过不断的测试发现有两个比较大的漏洞或不足。第一如果有两个待办事项的内容和优先等级的完全一样的时候,那么在对两者的其中一个进行修改、标记、删除等操作会出现修改、标记、删除的对象
39、不一定是选定对象的结果。目前尚未找到解决的好方法。第二是由于TextField的自身属性,导致复制粘贴功能没有实现自由复制,本人也已经尝试了各种方法,在不考虑过于繁琐的方法的前提下算是用尽心思没能找到好的方法实现自由复制粘贴。第七章 总结由于各个方面的原因,这次毕业设计的时间比较仓促,没有过多的思考和设计,是在以前的设计的基础之上加以更改,所以对于程序结构的设计、类的封装都显得不尽人意,深感惭愧。不过通过这次的毕业设计也的确让我学习了很多,本来已经生疏的J2me语言又重新拾了起来,不仅把所学习的知识真正运用起来,而且还学习到了很多老师没有教的东西。通过在网络上查找相关知识和资料,让我对J2me
40、的很多东西有了重新的认识。在遇到了错误问题,通知自己的努力而解决了的时候,我也清楚的体会到了学习的乐趣。虽然不是什么大成功,却也让我很有成就感。现在想起设计时被自己心细发现的隐藏漏洞和不合理,然后将其修改正确,我感到了对自己所设计东西抱有的那一份责任。这让我突然想到了那些给操作系统、给自己的软件不停的纠错,在网上发布最新的补丁的时候。我想现在我能够体会他们维护自己产品的心情了。上面在测试软件结果一块也提到了软件存在的错误和不足,我相信在以后自己会花些时间多思考,也通过更深入的学习,能够将软件修改的更好。在这次程序设计里面,我只有四个类,而且分配明显不均匀,从他们的大小就可以看出,MIDlet和
41、Canvas两个文件很大,而剩下两个占的比重很小。而且对数据库操作的代码自己都觉得过于繁琐,却无奈找不出好的方法修改。我看了很多网上高手们上传的程序,他们的类规划的十分严谨。这让我十分惭愧,思考原因,一个确实是我时间没有那么充足加上本身技不如人,没有纯熟的设计经验。二应该是跟我性格有关,有些急于求成,反而有点欲速则不达,求速不求质的感觉。我这次设计当然也不是没有优点,我自己最喜欢的就是我增加的许多创意,而且在设计之前预期的功能基本上都实现了,通过细心的思考,跟别人的软件进行功能界面仔细的比对,让程序的漏洞不断减少。虽然仍存在bug但是不影响正常使用,我的确感到非常欣慰,有种对得起用户的得意。通过这次设计让我相信我以后一定能设计出更完美的东西给大家。参考文献:1郭克华,盛羽,周宜洁.Java ME程序设计M.清华大