收藏 分销(赏)

j2me计算器设计(终稿).doc

上传人:w****g 文档编号:2629435 上传时间:2024-06-03 格式:DOC 页数:30 大小:231.50KB 下载积分:12 金币
下载 相关 举报
j2me计算器设计(终稿).doc_第1页
第1页 / 共30页
j2me计算器设计(终稿).doc_第2页
第2页 / 共30页


点击查看更多>>
资源描述
目录 摘 要 II 第1章 绪论 - 1 - 第2章 J2ME计算器 - 2 - 2.1J2ME的基本概念 - 2 - 2.2J2ME平台的搭建 - 2 - 2.2.1构建J2ME平台 - 2 - 2.2.2计算器的实现 - 4 - 第3章 运行结果 - 7 - 3.1 运行和结果 - 7 - 3.1.1计算器演示 - 7 - 参考文献 - 9 - 附 录 - 10- J2ME计算器设计 摘 要 本文简单介绍了J2ME技术,J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE、J2EE并称。根据Sun的定义:J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。J2ME技术在1999年的JavaOne Developer Conference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。 本文通过介绍J2ME平台的搭建,从而能实现计算器的设计。 关键词:J2ME,搭建,实现设计 - 27 - 第1章 绪论 在今天计算已经无处不在。越来越多的人开始认为,经过了许多人共享一台计算机的大型主机时代,一人一台计算机的个人PC时代之后,下一个时代就是一人多台计算设备的普及计算时代(Ubiquitous Computing,IBM称之为Pervasive Computing)。计算设备将从单一的PC扩展到各种各样的大小和功能,从家庭消费电子产品,到个人随身携带,穿着,车载的各种移动信息处理设备,多样化是这个领域的最大特点。网络是这个领域最重要的增值特性。当手机可以随时随地无线上网,PDA可以和个人PC同步,车载PC可以获得网上GPS地图数据时,这些孤立的设备才能够发挥最大的作用。 而平台无关性和网络功能正是J2ME的设计目标和能力(事实上,Java最初的设计目标就是用于消费电子领域,但是后来在PC和服务器上得到了发展)。一次编写,到处运行的平台无关性,对网络,多重设备间联网的机制(JINI)显然对这个领域是至关重要的软件条件。这个领域内的Java标准就是J2ME。 明天的计算将进入普及计算时代。各种消费电子产品,包括智能手机,PDA,Web-TV,将来的信息家电等等将实现随时随地的计算。这是一个异常广阔和丰富多彩的领域,其设备极度多样化而且都将在网络中,Java技术的跨平台性和网络功能在这里大有用武之地。这就是J2ME,这一丰富多彩的领域中生机勃勃的技术。 第2章 J2ME计算器 2,1J2ME的基本概念 J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE、J2EE并称。 Java2版本书籍 根据Sun的定义:J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。J2ME技术在1999年的JavaOne Developer Conference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。 2.2J2ME平台的搭建 2.2.1构建J2ME平台 1.从如下地址下载相关的软件。 J2SDK1.4.2_03+WTK2.1: Eclipse3.0RC2 http://www.eclipse.org EclipseME0.4.1 2. 按照顺序依次安装J2SDK1.4.2_03、WTK2.1、Eclipse3.0RC2和EclipseME0.4.1,安装完j2sdk后应该设置环境变量classpath、path和JAVA_HOME等环境变量。 接下来安装WTK2.1,和一般的应用程序安装一样。安装以后可以从KToolBar里面运行一下WTK2.1里面自带的一些Demo,如果正常运行表示WTK安装正确,下面我们要搭建Eclipse的开发环境了,Eclipse的安装很简单,你直接把Eclipse3.0RC2解压到c:\eclipse就可以了。直接运行Eclipse.exe这样你就可以看到Eclipse的运行界面了。如果没有用过Eclipse的话那么你可以看看帮助文档,自己做个小java项目运行一下。下面我们要安装EclipseME.0.4.1的插件了,关闭Eclipse然后解压EclipseME0.4.1到c:\eclipse\plugin里面,重新启动Eclipse,选择windows->preferences可以进行配置J2ME开发平台(图2.1) 图2.1 开发平台 选择Platform Components->Wireless Toolkits,右键选择add Wireless Toolkit会出现下面的界面。 图2.2 配置界面 2.2.2计算器的实现 1.简单计算器功能图 图2.3 功能图 2.简单计算器界面 把其放到到eclipse生产的工程目录的res目录下。 图2.4 界面 3.通过J2ME平台实现 新建一个项目来开发J2ME项目,选择file->new->others->J2ME ->J2ME MIDlet suite,然后填写项目的名字calc,选择下一步最后完成,这样就新建了一个J2ME项目了。 图2.5 新建 接下来从Package Explorer里面选择项目calc然后新建一个J2ME MIDlet名字命名为calc,然后使用Eclipse编译。启动 Eclipse,配置 EclipseME 插件。 要实现这个功能,请单击"Window"菜单,然后选择"Preferences"菜单项,然后在弹出的菜单中选择"J2ME"。然后执行以下步骤: 点击"Platform Components",见图2.6。 右键单击右边窗口"Wireless Toolkits",选择"Add Wireless Toolkit",此时会弹出窗口(见图2.7),"Wireless Toolkit Directory"设置为wtk_home对应的安装目录。 图2.6 EclipseME 插件配置界面 图2.7添加Wireless Toolkit 安装完成之后应该出现如图2.8的界面。 图2.8配置EclipseME 插件 图2.9 然后编译代码。 第3章 运行结果 3.1 运行和结果 3.1.1计算器演示 从菜单选择Run->run参照下图配置运行环境。 图 3.1 RUN 1. 加法运算 第一个操作数输入7,第二个操作数输入8,点击“=”。如图3.2所示 图3.2 加法 2.除法运算 第一个操作数输入20,第二个操作数输入2,点击“=”。如图3.3所示 图3.3 除法 3. 减法运算 第一个操作数输入100,第二个操作数输入55,点击“=”。如图3.4所示 图3.4 减法 4. 乘法运算 第一个操作数输入5,第二个操作数输入12,点击“=”。如图3.5所示 图3.5 乘法 参考文献 [1] Bruce Eckel著.侯捷译.Java编程思想[M]. 机械工业出版社出版社. 2009.35-40. [2] Joshua Bloce著. 潘爱民译. Effective Java中文版[M].机械工业出版社. 2004.102-108. [3] 飞思科技产品研发中心.J2EE应用开发[C].2005年6月第一版.电子工业出版社.2005. 附 录 程序1:CalcCanvas package my.calc; import com.nokia.mid.ui.FullCanvas; import javax.microedition.lcdui.*; import java.io.*; /** * 计算器界面 * <p>Description: </p> * <p>Copyright: Copyright (c) 2005</p> * <p>Company: </p> * @version 1.0 */ public class CalcCanvas extends FullCanvas{ /**退出按钮*/ private Command cmdExit; /**标题*/ private String title = "Calculator"; /**字体*/ private Font f; /**显示的数字*/ private long result = 0; /**焦点编号*/ private int num = 0; /**焦点坐标*/ private int focusX = 5; private int focusY = 52; /**按钮宽度间隔*/ private int intervalWidth = 2; private int intervalHeight = 2; /**图片起点坐标*/ private int x = 10; private int y = 70; /**按钮尺寸*/ private int buttonWidth = 37; private int buttonHeight = 28; /**图片文件*/ private Image image = null; /**存储控件代表的内容*/ private char[] info = {'7','8','9','/', '4','5','6','*', '1','2','3','-', '0','?','=','+' }; /**运算中的第一个数字*/ private long firstNum = 0; /**运算中的第二个数字*/ private long secondNum = 0; /**是否输入第一个数字,true代表已经输入,false代表未输入*/ private boolean flag = false; /**存储按下的运算按钮的下标*/ private int func = 0; /**默认构造方法*/ public CalcCanvas() { try{ image = Image.createImage("/calc.png"); //System.out.println(x); }catch(IOException e){ //ignore System.out.println(e); } } /** * 绘制 * @param g 图形对象 */ public void paint(Graphics g) { /**清除当前显示*/ g.setColor(255,255,255); g.fillRect(0,0,getWidth(),getHeight()); //恢复系统颜色 g.setColor(0,0,0); f = g.getFont(); //绘制标题 g.drawString(title,getWidth() / 2,f.getHeight() / 2,Graphics.TOP|Graphics.HCENTER); //绘制文本框 g.drawRect(3,24,172,20); //绘制数字 String temp = Long.toString(result); g.drawString(temp,getWidth() - 3,30,Graphics.TOP|Graphics.RIGHT); //绘制面板 g.drawImage(image,2,50,Graphics.TOP|Graphics.LEFT); //绘制焦点 drawFocus(g,num); } /** * 事件处理 * @param keyCode 按钮值 */ public void keyPressed(int keyCode){ //System.out.println(keyCode); //向左移动,如果移动到右边界,则移动到下一行 if(keyCode == KEY_LEFT_ARROW){ //判断是否到达最后一个 if(num == 0){ num = 15; }else{ num--; } } //向右移动,如果移动到左边界,则移动到上一行末尾 if(keyCode == KEY_RIGHT_ARROW){ //判断是否到达第一个 if(num == 15){ num = 0; }else{ num++; } } //向上移动,如果移动到上边界,则移动到下边界对应位置 if(keyCode == KEY_UP_ARROW){ //判断是否移动到上边界,如果是则移动到下边界的对应位置 if(num - 4 < 0){ num = 15 + num - 3; }else{ num = num - 4; } } //向下移动,如果移动到下边界,则移动到上边界对应位置 if(keyCode == KEY_DOWN_ARROW){ //判断是否达到下边界,如果是则移动到上边界的对应位置 if(num + 4 > 15){ num = num + 3 - 15; }else{ num = num + 4; } } //确定按钮 if(keyCode == -5){ //根据选择按钮的不同进行操作 action(); } //System.out.println("num : " + num); //绘图 repaint(); } /** * 绘制焦点矩形 * @param g 图形对象 * @param num 焦点编号 */ private void drawFocus(Graphics g,int num){ //设置绘制颜色为红色 g.setColor(255,0,0); //设置焦点的X和Y坐标 setXandYByNum(num); //绘制选择框 g.drawRect(focusX,focusY,buttonWidth,buttonHeight); } /** * 根据焦点编号,设置焦点的X和Y坐标 * @param num 焦点编号 */ private void setXandYByNum(int num){ focusX = 5 + (num % 4) * (buttonWidth + intervalWidth); focusY = 52 + (num / 4) * (buttonHeight + intervalHeight); } /** * 在用户按下确定按钮以后,根据选择按钮的不同进行操作 */ private void action(){ //判断焦点按钮是否为数字 if((num >=0 && num < 3) || (num > 3 && num < 7) || (num > 7 && num < 11) || (num == 12)){ //如果是数字,则将原数字乘以10,再加上现在的数字 result = result * 10 + (info[num] - '0'); } //如果按下的是负号,则求当前数字的负数 if(num == 13){ result = -result; } //判断第一个数字是否输入 if(flag == true){ secondNum = result; //处理功能按钮 //按下=按钮,或者按下运算按钮时,进行运算 if(num == 14 || (num % 4 == 3)){ //根据运算按钮进行运算 if(func == 3){ //除法运算 result = firstNum / secondNum; }else if(func == 7){ //乘法运算 result = firstNum * secondNum; }else if(func == 11){ //减法运算 result = firstNum - secondNum; }else if(func == 15){ //加法运算 result = firstNum + secondNum; } if(num == 14){ //将运算结果赋给第一个数字 firstNum = result; //将标志修改为false flag = false; }else{ //记录运算按钮 func = num; //将运算结果赋给第一个数字 firstNum = result; //将显示清零 result = 0; } } }else{ //将当前值赋给第一个数字 firstNum = result; //判断是否按下运算按钮,并存储按下的运算按钮 if(num % 4 == 3){ func = num; //设置第一个数字已输入,并将显示清零 flag = true; result = 0; } } } } 程序2:CalcMIDlet package my.calc; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class CalcMIDlet extends MIDlet { private static CalcMIDlet instance; private CalcCanvas calc = new CalcCanvas(); /** Constructor */ public CalcMIDlet() { instance = this; } /** Main method */ public void startApp() { Display.getDisplay(this).setCurrent(calc); } /** Handle pausing the MIDlet */ public void pauseApp() { } /** Handle destroying the MIDlet */ public void destroyApp(boolean unconditional) { } /** Quit the MIDlet */ public static void quitApp() { instance.destroyApp(true); instance.notifyDestroyed(); instance = null; } }目 录 第一章 可行性研究报告概述 1 1.1项目名称 1 1.2项目承担单位 1 1.3项目建设地点 1 1.4可研报告编制单位 1 1.5项目概述及主要经济技术指标 1 第二章 编制目的、依据、原则和范围 5 2.1编制目的 5 2.2编制依据 5 2.3编制原则 5 2.4可行性研究的范围 6 第三章 建设的必要性 7 3.1符合国家“十一五”规划纲要和循环经济要求 7 3.2环境保护和节能降耗的需要 8 3.3企业可持续发展的需要 9 第四章 项目建设条件 10 4.1主体工程概况 10 4.2厂址选择 12 4.3公用设施及社会依托条件 12 第五章 改造规模与产品方案 15 5.1改造规模 15 5.2生产方案 15 第六章 生产设备节电技改方案 16 6.1企业能耗现状分析 16 6.2改造设备运行参数 16 6.3技术方案、设备方案 17 6.4项目建议改造方案 22 6.5消耗定额 25 6.6小结 25 第七章 项目实施机构和项目法人 28 7.1项目实施机构 28 7.2项目法人 28 第八章 环境保护 28 第八章 环境保护 29 第九章 社会经济效益 31 9.1环境效益 31 9.2社会效益 31 第十章 节约和合理利用能源 33 10.1节能依据及标准 33 10.2节能设计原则 33 10.3能耗分析 33 10.4节能措施及节能效果分析 34 第十一章 环境安全与劳动保护 35 11.1安全 35 11.2劳动保护 36 第十二章 生产管理与人员编制 38 12.1生产管理 38 12.2人员编制 38 第十三章 项目实施进度 39 13.1 建设工期 39 13.2 项目实施时期各阶段进度建议 39 第十四章 项目招标方案 41 第十五章 投资估算及资金筹措 42 15.1投资估算 42 15.2资金筹措 43 第十六章 经济评价 44 16.1项目周期 44 16.2成本参数 44 16.3损益类参数 44 16.4经济评价结果 45 第十七章 结论 47 17.1结论意见及总的评价、存在的问题和建议 47
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服