J2ME实验报告.docx
- 文档编号:9214586
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:29
- 大小:293.78KB
J2ME实验报告.docx
《J2ME实验报告.docx》由会员分享,可在线阅读,更多相关《J2ME实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
J2ME实验报告
实验名称:
创建简单的JAVAME应用
时间:
2010/10/18地点:
8-209
一、实验设备:
一台计算机。
二、实验目的:
熟悉使用Eclipse软件;
创建MIDlet项目,检验Eclipse设置;
创建JavaME项目,编辑JavaME元素,并运行与调试改程序,使之得到相应的运行结果。
实验内容及方法:
建立在熟悉MIDlet的条件下。
创建MIDlet项目,然后检验Eclipse的设置,创建JavaME项目。
添加MIDlet到项目,编辑JavaME元素。
最后运行与调试。
三、实验过程:
1.实验步骤
1.创建MIDlet项目。
建立一个继承自Midlet的类MyMIDlet,。
2.检验Eclipse的设置。
选择File—>New—>Project,在弹出的对话框中有一个J2ME选项(如图所示);
从菜单栏中选择Windows—>Preferences命令,在弹出的对话框中同样可以看到J2ME配置的首选项(如下图所示)。
有以上,则表明安装成功
3.创建JavaME项目。
在菜单栏中选择New—>Project命令,选中J2ME—>J2MEMidletSuite—>Next,进入另外向导。
然后输入项目名称,点下一步。
然后进入MidletSuite属性设置对话框,选择“SunJavaWirelessToolkit2.3”。
接下来直接选择默认设置即可。
4.添加MIDlet到项目。
首先找到我们所写的那个MIDlet文件MyMIDlet.java,然后直接复制到MyJ2ME工程文件夹的src文件夹对应的包中即可,刷新后就可以看到添加的MIDlet了。
5.编辑JavaME元素
6.运行与调试。
运行结果如下图所示。
2.流程图:
3.源程序:
部分:
publicclassMyMIDletextendsMIDlet{
privateFormform;
privatefinalCommandcmdExit=newCommand("Exit",Command.EXIT,1);
privatechar[]charArray={
'T','h','i','s','','i','s','',
'm','y','','f','i','r','s','t','','J','2','M','E','',
'p','r','o','g','r','a','m','.','\n','W','e','l','c','o','m','e','!
'};
publicMyMIDlet(){
//TODOAuto-generatedconstructorstub
form=newForm("HelloMyJ2ME");
StringBufferstrBuf=newStringBuffer();
for(inti=0;i { strBuf.append(charArray[i]); } form.append(strBuf.toString()); form.addCommand(cmdExit); form.setCommandListener(newCommandListener(){ publicvoidcommandAction(Commandarg0,Displayablearg1){ //TODOAuto-generatedmethodstub if(cmdExit==arg0){ notifyDestroyed(); destroyApp(true); } } }); } protectedvoidstartApp(){ //TODOAuto-generatedmethodstub Display.getDisplay(this).setCurrent(form); } protectedvoidpauseApp(){ //TODOAuto-generatedmethodstub } protectedvoiddestroyApp(booleanarg0){ //TODOAuto-generatedmethodstub } } 4.运行截图: 实验名称: 有图形的JavaMe应用 时间: 2010/10/21地点: 8-209 一.实验设备: 一台计算机。 二.实验目的: 实现一个关于高级图形用户界面的示例。 了解Display类、Displayable类和它们的实现方法;掌握TextBox组件、List组件和它们的实现方法;掌握Form及其Item和抽象命令事件。 三.实验内容及方法: 编写一个显示图形界面程序,在eclipse上运行,通过UI表现给用户。 将原图形的矩形改为正方形,将三角形改为直角三角形,并且对颜色相应改变。 四.实验过程: 1.实验步骤 ①.分析实验需求,搜集相关的资料 ②.编写程序,修改相应代码 ③.在eclipse上面运行调试.输出结果 ④.整理实验报告 2.流程图: 3.源程序: 部分 classMyCanvasextendsCanvasimplementsRunnable{ intmenuIndex=0; String[]menu={"直线","正方形","弧","圆角矩形","直角三角形","图片","文本",""}; publicMyCanvas(){ setFullScreenMode(true); image=createImage("/image1.png"); newThread(this).start(); } privateImagecreateImage(Stringpath){ Imageimage=null; try{ image=Image.createImage(path); }catch(Exceptione){ e.printStackTrace(); } returnimage; } publicvoidkeyPressed(intkeyCode){ intgameAction=getGameAction(keyCode); if(gameAction==Canvas.UP){ menuIndex=--menuIndex<0? menu.length-1: menuIndex; }elseif(gameAction==Canvas.DOWN){ menuIndex=++menuIndex>menu.length-1? 0: menuIndex; }elseif(gameAction==Canvas.FIRE||keyCode==-6){ state=menuIndex+1; }elseif(keyCode==-7){ if(state==MENU){ exitApp(); }else{ state=MENU; } } } protectedvoidpaint(Graphicsg){ //TODOAuto-generatedmethodstub g.setClip(0,0,getWidth(),getHeight()); g.setColor(0xABCDEF); g.fillRect(0,0,getWidth(),getHeight()); switch(state){ caseMENU: for(inti=0;i if(i==menuIndex){ g.setColor(0); }else{ g.setColor(0xDDDDDD); } g.drawString(menu[i],getWidth()>>1,20+i*20,0x1|0x10); } g.setColor(0xff); g.drawString("进入",0,getHeight(),Graphics.LEFT|Graphics.BOTTOM); g.drawString("退出",getWidth(),getHeight(),Graphics.RIGHT|Graphics.BOTTOM); break; caseLINE: //直线的绘制 g.setColor(0xcdaba); g.drawLine(140,80,140,20); g.setColor(0xff); g.drawString("返回",getWidth(),getHeight(),Graphics.RIGHT|Graphics.BOTTOM); break; caseRECT: //正方形的绘制和填充 g.setColor(0xaaaaaa); g.drawRect(900,100,100,100); g.setColor(0xbbbcdd); g.fillRect(91,101,98,98); g.setColor(0xff); g.drawString("返回",getWidth(),getHeight(),Graphics.RIGHT|Graphics.BOTTOM); break; caseTRIANGLE: //直角三角形的绘制 g.setColor(0xdaaacb); g.fillTriangle(100,40,40,40,100,100); g.setColor(0xff); g.drawString("返回",getWidth(),getHeight(),Graphics.RIGHT|Graphics.BOTTOM); break; } publicvoidrun(){ //TODOAuto-generatedmethodstub while(true){ longst=System.currentTimeMillis(); repaint(); serviceRepaints(); intet=(int)(System.currentTimeMillis()-st); if(et<100){ try{ Thread.sleep(100-et); }catch(Exceptione){ e.printStackTrace(); } } 4.运行截图。 (1)修改前修改后 (2)修改前修改后 (3)修改前修改后 (4)修改前修改后 实验名称: 贪吃蛇小游戏 时间: 2010/10/25地点: 8—209 一.实验设备: 一台计算机。 二.实验目的: 了解SnakeCanvas类、SnakeMIDlet类和它们的实现方法; 编写贪吃蛇小游戏; 对eclipse编写游戏进一步提高。 三.实验内容及方法: 开发简单的贪吃蛇游戏,正确运用各种类,编写程序,并且运行。 四.实验过程: 1.实验步骤 ①.理解贪吃蛇的游戏原理编写输入贪吃蛇程序 ②.编写输入贪吃蛇程序实验游戏 ③.上机输入和调试自己所编的程序; ④.整理出实验报告。 2.流程图: 3.源程序: publicclassSnakeCanvasextendsCanvasimplementsRunnable{ /**存储贪吃蛇节点坐标,其中第二维下标为0的代表x坐标,第二维下标是1的代表y坐标*/ int[][]snake=newint[200][2]; intsnakeNum;/**已经使用的节点数量*/ intdirection;/**贪吃蛇运动方向,0代表向上,1代表向下,2代表向左,3代表向右*/ /*移动方向*/ privatefinalintDIRECTION_UP=0;/**向上*/ privatefinalintDIRECTION_DOWN=1;/**向下*/ privatefinalintDIRECTION_LEFT=2;/**向左*/ privatefinalintDIRECTION_RIGHT=3;/**向右*/ intwidth;/**游戏区域宽度*/ intheight;/**游戏区域高度*/ privatefinalbyteSNAKEWIDTH=4;/**蛇身单元宽度*/ booleanisPaused=false;/**是否处于暂停状态,true代表暂停*/ booleanisRun=true;/**是否处于运行状态,true代表运行*/ privatefinalintSLEEP_TIME=300;/**时间间隔*/ intfoodX;/**食物的X坐标*/ intfoodY;/**食物的Y坐标*/ booleanb=true;/**食物的闪烁控制*/ Randomrandom=newRandom();/**Random对象*/ publicSnakeCanvas(){ init();//初始化 width=this.getWidth(); height=this.getHeight(); newThread(this).start();//启动线程 } /** *初始化开始数据 */ privatevoidinit(){ snakeNum=7;//初始化节点数量 //初始化节点数据 for(inti=0;i snake[i][0]=100-SNAKEWIDTH*i; snake[i][1]=40; } direction=DIRECTION_RIGHT;//初始化移动方向 //初始化食物坐标 foodX=100; foodY=100; } protectedvoidpaint(Graphicsg){ //清屏 g.setColor(0xffffff); g.fillRect(0,0,width,height); g.setColor(0); //绘制蛇身 for(inti=0;i g.fillRect(snake[i][0],snake[i][1],SNAKEWIDTH,SNAKEWIDTH); } //绘制食物 if(b){ g.fillRect(foodX,foodY,SNAKEWIDTH,SNAKEWIDTH); } } privatevoidmove(intdirection){ //蛇身移动 for(inti=snakeNum-1;i>0;i--){ snake[i][0]=snake[i-1][0]; snake[i][1]=snake[i-1][1]; } //第一个单元格移动 switch(direction){ caseDIRECTION_UP: snake[0][1]=snake[0][1]-SNAKEWIDTH; break; caseDIRECTION_DOWN: snake[0][1]=snake[0][1]+SNAKEWIDTH; break; caseDIRECTION_LEFT: snake[0][0]=snake[0][0]-SNAKEWIDTH; break; caseDIRECTION_RIGHT: snake[0][0]=snake[0][0]+SNAKEWIDTH; break; } } /** *吃掉食物,自身增长 */ privatevoideatFood(){ //判别蛇头是否和食物重叠 if(snake[0][0]==foodX&&snake[0][1]==foodY){ snakeNum++; generateFood(); } } /** *产生食物 *说明: 食物的坐标必须位于屏幕内,且不能和蛇身重合 */ privatevoidgenerateFood(){ while(true){ foodX=Math.abs(random.nextInt()%(width-SNAKEWIDTH+1)) /SNAKEWIDTH*SNAKEWIDTH; foodY=Math.abs(random.nextInt()%(height-SNAKEWIDTH+1)) /SNAKEWIDTH*SNAKEWIDTH; booleanb=true; for(inti=0;i if(foodX==snake[i][0]&&snake[i][1]==foodY){ b=false; break; } } if(b){ break; } } } /** *判断游戏是否结束 *结束条件: *1、蛇头超出边界 *2、蛇头碰到自身 */ privatebooleanisGameOver(){ //边界判别 if(snake[0][0]<0||snake[0][0]>(width-SNAKEWIDTH)|| snake[0][1]<0||snake[0][1]>(height-SNAKEWIDTH)){ returntrue; } //碰到自身 for(inti=4;i if(snake[0][0]==snake[i][0] &&snake[0][1]==snake[i][1]){ returntrue; } } returnfalse; } /** *事件处理 */ publicvoidkeyPressed(intkeyCode){ intaction=this.getGameAction(keyCode); //改变方向 switch(action){ caseUP: if(direction! =DIRECTION_DOWN){ direction=DIRECTION_UP; } break; caseDOWN: if(direction! =DIRECTION_UP){ direction=DIRECTION_DOWN; } break; caseLEFT: if(direction! =DIRECTION_RIGHT){ direction=DIRECTION_LEFT; } break; caseRIGHT: if(direction! =DIRECTION_LEFT){ direction=DIRECTION_RIGHT; } break; caseFIRE: //暂停和继续 isPaused=! isPaused; break; } } /** *线程方法 *使用精确延时 */ publicvoidrun(){ try{ while(isRun){ //开始时间 longstart=System.currentTimeMillis(); if(! isPaused){ //吃食物 eatFood(); //移动 move(direction); //结束游戏 if(isGameOver()){ break; } //控制闪烁 b=! b; } //重新绘制 repaint(); longend=System.currentTimeMillis(); //延时 if(end-start Thread.sleep(SLEEP_TIME-(end-start)); } } }catch(Exceptione){} } } 4.运行截图: (1)开始运行,蛇爬行,食物闪 (2)蛇头超出边界,游戏结束 (3)蛇身与食物重合,蛇吃掉食物,蛇身变长(4)蛇头碰到自身,游戏结束 (5)按确定键,游戏暂停,再按,游戏继续 实验名称: 创建简单的JAVAME应用 时间: 2010/10/28地点: 8—209 一.实验设备: 一台计算机. 二.实验目的: 修改一个开发出来的JavaME聊天工具,增添其功能。 了解GCF通用连接方法,熟悉JavaME通讯方式,熟悉掌握LogForm类、HallList类和ChatForm类。 三.实验内容及方法: 将已经编号的实验成寻导入到eclipse,运行。 查看其源代码,并进行修改。 使其在登录的时候能够提供记住当前密码的选项。 运行修改后的程序。 四.实验过程: 1.实验步骤 ①.导入已经开发好的聊天工具程序 ②.读聊天程序,并进行修改: 在登录项里面添加一个“记住密码“项。 ③.调试运行程序。 2.流程图: 3.源程序: 部分 publicLogForm(String
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2ME 实验 报告