Eclipse实验报告.doc_第1页
Eclipse实验报告.doc_第2页
Eclipse实验报告.doc_第3页
Eclipse实验报告.doc_第4页
Eclipse实验报告.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南 华 大 学实验报告(2010年到2011学年第一学期)课程名称: J2ME程序设计 班级: 本08计算1班 学号: 20084440101 姓名: 袁 洁 教师: 汪凤麟 2010年上学期实验名称: 创建简单的JAVA ME应用 时间: 2010/10/21 地点: 8栋实验室 一、 实验设备:1计算机2Eclipse环境Eclipse是一种可扩展的开放源代码IDE。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。 Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。缺点就是较复杂,对初学者来说,理解起来比较困难。二、 实验目的:1.创建MIDlet项目2.检验Eclipse设置3.创建Java Me项目4.添加MIDlet到项目5.编辑Java Me元素6.运行与调试7.向真机发布程序三、 实验内容及方法:四、 实验过程:1.实验步骤在创建Java Me项目之前,先检查一下Eclipse设置是否完整1. Eclipse ME插件的检查首先,检查一下是否已经安装好Eclipse ME插件,成功安装好Eclipse ME插件时,可以从3个地方看到。(1) 选择FileNewProject菜单命令,弹出New Project对话框,如图1-1所示。 图1-1可以看到新建项目的对话框中有一个J2ME选项,这表明插件已经安装成功。(2) 同样,选择Help菜单,可以看到多出一个帮助选项EclipseME,如图1-2所示。 图1-2(3)从菜单栏中选择WindowPreferences命令,弹出“首选项”对话框,如图1-3所示。可以从中看到J2ME的配置首选项。 图1-32Eclipse的J2ME环境配置检查Eclipse中J2ME的环境在首选项中进行配置,先检查一下Antenna设置,这个设置主要是针对J2ME项目开发打包用的。这里的配置情况如图1-4所示。配置好后,接下来最关键的是检验是否导入J2ME的仿真器设备,选中J2MEDevice Management,如果导入了设备,则可以看到其设备的列表,如图1-5所示。 图1-53.创建Java Me项目经过配置检查后,在确保配置正确的条件下,可以开始进行Java ME项目创建的工作。在Eclipse的菜单栏中选择NewProject命令,弹出New Project对话框,如图1-6所示。图1-6选中J2MEJ2ME Midlet Suite,单击Next按钮,进入New J2ME Project向导,如图1-7所示。 图1-7在图1-7中输入项目名称MyJ2ME,然后单击Next按钮,进入Midlet Suite设置页面,如图1-8所示。 图1-8在图1-8中对Device中的Group进行选择,选择“Sun Java Wireless Toolkit2.3”,Device选择“DefaultColorPhone”。如果这两项信息都没有,那么需要单击Manage Devices按钮,回到环境设置界面,重新进行配置。Jad名以工程默认的为准,设置好后,选择Next按钮,进入Java设置界面,如图1-9所示。 图1-9在图1-9中采用默认设置即可,然后单击Finish按钮,Java ME项目便创建好了。4.添加MIDlet到项目 通过Eclipse新建向导添加新的MIDlet,具体操作如下。(1)从菜单栏中选择NewOther命令,将弹出新建向导对话框,如图1-12所示。 图1-12(2)在图1-12中选择J2MEJ2ME Midlet,再单击Next按钮,将进入J2ME Midlet创建界面,如图1-13所示。 图1-13(3)在图1-13中输入MIDlet类名“MyMIDlet”,其他都按图中所示输入即可。单击Finish按钮,就完成了创建和添加MIDlet的操作。5.运行与调试项目编辑完毕,需要运行,有3种选择运行配置的方法: 菜单RunRun Configurations。 单击工具栏上的工具按钮,选择Run Configurations。 在J2ME工程处右击,从快捷菜单中选择Run AsRun Configurations。以上三种选择方法弹出的都是运行界面,如图1-14所示。 图1-14在图1-14中选择Wireless Toolkit Emulator,双击或选择快捷菜单中的New命令,将新建一个运行配置,如图1-15所示。在图1-15的Name文本框中输入运行配置的名称“MyJ2ME”,在Midlet文本框后面单击Search按钮,弹出可供选择的MIDlet界面,如图1-16所示。在图1-16中选择所需运行的MIDlet,单击OK按钮即可。运行所编辑的MIDlet,单击图1-15运行配置界面中的Run按钮,项目开始编译及运行,并弹出仿真器,仿真器中显示了运行结果,如图1-17所示。 图1-172. 流程图:开始进入标题界面按退出结束3. 源程序:package com.myj2me;/把“退出”键改成Stop,把“This is my first J2ME”,把“Hello”改为“Hi”。import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Form;import javax.microedition.midlet.MIDlet;public class MyMIDlet extends MIDlet private Form form;private final Command cmdStop = new Command(Stop,Command.STOP,1);private char charArray = w,e,l,c,o,m,e;public MyMIDlet() / TODO Auto-generated constructor stubform = new Form(Hi MyJ2ME);StringBuffer strBuf = new StringBuffer();for(int i=0; icharArray.length; i+)strBuf.append(charArrayi);form.append(strBuf.toString();form.addCommand(cmdStop);form.setCommandListener(new CommandListener()public void commandAction(Command arg0, Displayable arg1) / TODO Auto-generated method stubif(cmdStop = arg0)notifyDestroyed();destroyApp(true););protected void startApp()/ TODO Auto-generated method stubDisplay.getDisplay(this).setCurrent(form);protected void pauseApp() / TODO Auto-generated method stubprotected void destroyApp(boolean arg0)/ TODO Auto-generated method stub实验名称: 开发带有图形的Java ME应用 时间: 2010/10/21 地点: 8栋实验室 五、 实验设备:1计算机2Eclipse环境:Eclipse是一种可扩展的开放源代码IDE。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。 Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。缺点就是较复杂,对初学者来说,理解起来比较困难。六、 实验目的:熟悉实现用户界面的类与组件熟悉高级界面的实现了解Form所包含的ImageItem类低级界面的绘制七、 实验内容及方法:Form窗体是Screen的一个子类,可以包含图片、只读文本、可编辑文本、进度条、选项组以及自定义项目,这些都是Item类的子类。也就是说,任何一个Item子类都可以显示在Form窗体中。而Imageltem是Form的一个子类,主要用于显示图片对象。本实验就是在Form窗体中运用ImageItem子类显示图片。八、 实验过程:1. 实验步骤(1)创建项目(2)添加MIDlet架构类(3)编译与运行结果2. 流程图:开始进入标题界面按退出结束3.源程序:/增加了退出按钮,改变了图像显示的顺序与位置package ch6;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Form;import javax.microedition.lcdui.Image;import javax.microedition.lcdui.ImageItem;import javax.microedition.lcdui.Item;import javax.microedition.lcdui.ItemCommandListener;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class ImageItemMIDlet extends MIDlet implements ItemCommandListenerprivate Form form; private Command cmdExit = new Command(退出,Command.EXIT,1);private Command cmdImgItem1 = new Command(PLAIN,Command.ITEM,1);private Command cmdImgItem2 = new Command(Button,Command.ITEM,1);private Command cmdImgItem3 = new Command(Hyperlink,Command.ITEM,1);public ImageItemMIDlet() / TODO Auto-generated constructor stubtryImage image1 = Image.createImage(/image2.png);ImageItem imageItem1 = new ImageItem(1左对齐显示,image1,Item.LAYOUT_LEFT,null,Item.PLAIN);imageItem1.setItemCommandListener(this);imageItem1.addCommand(cmdImgItem1);Image image2 = Image.createImage(/image1.png);ImageItem imageItem2 = new ImageItem(2居中显示,image2,Item.LAYOUT_CENTER,null,Item.BUTTON);imageItem2.setItemCommandListener(this);imageItem2.addCommand(cmdImgItem2);Image image3 = Image.createImage(/image3.png);ImageItem imageItem3 = new ImageItem(3右对齐显示,image3,Item.LAYOUT_RIGHT,null,Item.HYPERLINK);imageItem3.setItemCommandListener(this);imageItem3.addCommand(cmdImgItem3);imageItem3.addCommand(cmdExit);imageItem2.addCommand(cmdExit);imageItem1.addCommand(cmdExit);form = new Form(ImageItem的显示);form.append(imageItem2);form.append(imageItem3);form.append(imageItem1);catch(Exception e)e.printStackTrace();protected void destroyApp(boolean arg0) throws MIDletStateChangeException / TODO Auto-generated method stubprotected void pauseApp() / TODO Auto-generated method stubprotected void startApp() throws MIDletStateChangeException / TODO Auto-generated method stubDisplay.getDisplay(this).setCurrent(form);public void commandAction(Command command, Item item) / TODO Auto-generated method stubif(command = cmdImgItem1)System.out.println(ImageItem Plain);else if(command = cmdImgItem2)System.out.println(ImageItem Button);else if(command = cmdImgItem3)System.out.println(ImageItem Hyperlink);实验名称: 利用Eclipse开发单机游戏示例 时间: 2010/10/21 地点: 8栋实验室 九、 实验设备:1计算机2Eclipse环境Eclipse是一种可扩展的开放源代码IDE。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。 Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。缺点就是较复杂,对初学者来说,理解起来比较困难。十、 实验目的:完成一个小型贪吃蛇游戏开发,简单实现功能1、项目功能及要求1) 游戏策划,定义游戏规则。2) 游戏规则实现;3) 界面清晰,功能完备。4) 能在模拟器上运行。2、 项目内容和要求1) J2ME手机游戏开发MIDP程序编制;2) 综合掌握调试手机游戏程序技巧;3) 手机程序代码优化;4) 高级用户界面设计;5) 低级用户界面设计;十一、 实验内容及方法 贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,接着又随机出现食物,等待蛇来吃,贪吃蛇碰到自身身体游戏不结束而是咬掉自己身体的一部分继续游戏,如果蛇在移动中撞到墙则游戏结束(判断蛇是否撞倒墙则蛇死,false)。程序关键在于表示蛇的图形及蛇的移动。用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体。十二、 实验过程:1.实验步骤(1)创建Snake项目(2)添加游戏架构类(3)编译与运行结果更改了背景色 蛇咬了自己的身体 撞墙则游戏结束2.流程图:开始进入游戏界面是否撞墙是否碰自身结束3.源程序:/修改了游戏结束判断标准,贪吃蛇碰到自身身体游戏不结束而是咬掉自己身体的一部分,更改屏幕背景颜色import java.util.Random;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Graphics;public class SnakeCanvas extends Canvas implements Runnable /*食物的左上角X坐标*/private int foodX;/*食物的左上角Y坐标*/private int foodY;/*食物的颜色值*/private int foodC;/*贪吃蛇*/private int snake = new int200*3;/*贪吃蛇食物宽度*/private final int SNAKE_W = 4;/*贪吃蛇食物长度*/private final int SNAKE_H = 4;/*贪吃蛇的身体长度,即包含食物的个数*/private int snakeNum;/*方向变量*/ private int direction; /*方向上*/ private final int DIR_UP = 0; /*方向下*/ private final int DIR_DOWN = 1; /*方向左*/ private final int DIR_LEFT = 2; /*方向右*/ private final int DIR_RIGHT = 3; /*Random对象,控制食物的随机出现*/ Random random = new Random(); /*可选颜色值*/ private final int COLOR = 0xff0000,0x00ff00,0x0000ff,0xffff00,0xff00ff,0x00ffff,0xff000f; /*线程对象*/ private Thread thread; /*线程控制变量*/ private boolean isShow = true; /*游戏是否退出控制变量*/ private boolean isExit = false; /*屏幕宽*/ private int SCREEN_W; /*屏幕高*/ private int SCREEN_H;public SnakeCanvas() / TODO Auto-generated constructor stub/*获取屏幕宽度和高度*/ SCREEN_W = this.getWidth(); SCREEN_H = this.getHeight();/初始化贪吃蛇的长度 snakeNum = 7; for(int i = 0;i snakeNum;i+) snakei*3+0 = 100 - SNAKE_W * i; snakei*3+1 = 40; snakei*3+2 = COLORi%7; /初始化贪吃蛇的移动方向 direction = DIR_RIGHT; /初始化食物坐标 foodX = 100; foodY = 100; foodC = 0xff; /启动游戏线程 thread = new Thread(this); thread.start();public void run() / TODO Auto-generated method stub while(true) /游戏逻辑控制循环体 while(isShow) /获取每一帧的开始时间点 long st = System.currentTimeMillis(); /游戏主逻辑控制函数 main(); /刷新屏幕 repaint(); serviceRepaints(); /获取每一帧逻辑处理完后的时间点与开始时间点之间的时间差 int ct = (int)(System.currentTimeMillis() - st); /设置游戏帧的睡眠时间 if(ct 0; i-) snakei*3+0 = snake(i-1)*3+0; snakei*3+1 = snake(i-1)*3+1; snakei*3+2 = snake(i-1)*3+2; snake0*3+0 = foodX; snake0*3+1 = foodY; snake0*3+2 = foodC; /食物被吃掉后需要生成新的食物 makeFood(); /*判断下一步是否超出屏幕而越界,游戏结束*/ if(isGameOver() isShow = false; isExit = true; return; /*蛇身移动过程*/ for(int i = snakeNum - 1;i 0;i-) snakei*3+0 = snake(i-1)*3+0; snakei*3+1 = snake(i-1)*3+1; /第一个单元格移动 stepX = 0; stepY = 0; switch(direction) case DIR_UP: stepY = -SNAKE_H; break; case DIR_DOWN: stepY = SNAKE_H; break; case DIR_LEFT: stepX = -SNAKE_W; break; case DIR_RIGHT: stepX = SNAKE_W; break; snake0*3+0 += stepX; snake0*3+1 += stepY; private void makeFood() /食物坐标 foodX = Math.abs(random.nextInt() % (SCREEN_W - SNAKE_W + 1) / SNAKE_W * SNAKE_W; foodY = Math.abs(random.nextInt() % (SCREEN_H - SNAKE_H + 1) / SNAKE_H * SNAKE_H; /食物颜色 foodC = COLORMath.abs(random.nextInt()%COLOR.length); /* * 判断游戏是否结束 * 结束条件 * 1、蛇头超出边界 * 蛇头碰到自身 * 1.蛇头碰到自身游戏不结束,咬掉碰到的那节身体 */ private boolean isGameOver() /边界判别 if(snake0*3+0 (SCREEN_W - SNAKE_W) | snake0*3+1 (SCREEN_H - SNAKE_H) return true; /碰到自身,碰到自身后游戏不结束,咬掉碰到的那节身体 for(int i = 4;i snakeNum;i+) if(snake0*3+0 = snakei*3+0 & snake0*3+1 = snakei*3+1) snakeNum=i-1; return false; protected void paint(Graphics g) / TODO Auto-generated method stub/屏幕擦除g.setColor(0x0ff00); g.fillRect(0,0,SCREEN_W,SCREEN_H); /绘制贪吃蛇 for(int i=0; isnakeNum; i+) drawSnake(g,snakei*3+0,snakei*3+1,snakei*3+2); /绘制食物 drawSnake(g,foodX,foodY,foodC);/* * 绘制贪吃蛇和食物 * param g * param x * param y * param color */private void drawSnake(Graphics g,int x,int y,int color) g.setColor(0xffffff); g.fillRect(x,y,SNAKE_W,SNAKE_H); g.setColor(color); g.fillRect(x+1,y+1,SNAKE_W-1,SNAKE_H-1); public void keyPressed(int keyCode) int action = this.getGameAction(keyCode); /改变方向 switch(action) case UP: if(direction != DIR_DOWN) direction = DIR_UP; break; case DOWN: if(direction != DIR_UP) direction = DIR_DOWN; break; case LEFT: if(direction != DIR_RIGHT) direction = DIR_LEFT; break; case RIGHT: if(direction != DIR_LEFT) direction = DIR_RIGHT; break; case FIRE: /暂停和继续 isShow = !isShow; break; 实验名称: Java ME的通讯开发 时间: 2010/10/21 地点: 8栋实验室 十三、 实验设备:1计算机2Eclipse环境Eclipse是一种可扩展的开放源代码IDE。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。 Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。缺点就是较复杂,对初学者来说,理解起来比较困难。十四、 实验目的:了解Java ME通讯方式熟悉蓝牙通讯十五、 实验内容及方法:随着手机应用的发展,现在手机大多数都配备了蓝牙设备,手机之间或者手机与其他蓝牙设备之间的蓝牙通讯业务日益频繁。现实生活中拥有蓝牙服务的手机用户也都往往用蓝牙传送图像,本实验是一个关于用蓝牙传送图片的例子。首先,进入连接页面,与要向其传送图片的客户进行连接,连接好后再选择要传送的图片发送即可。这个例子由入口类(DemoMIDlet)、服务器端类(GUIImageServer和BTImageServer)、客户端类(GUIImageClient和BTImageClient)组成。十六、 实验过程:1. 实验步骤(1)创建Bluetooth项目(2)添加MIDlet架构类(3)编译与运行结果 2.流程图: 开始 退出进入取消显示标题界面显示连接提示界面显示图片选择界面确认确认返回结束显示图片返回3.源程序:/*在SERVER下连接过后的菜单中增加了ENTER按钮,按ENTER会显示相应的图片 * (#)GUIImageServer.java1.3 05/04/18 * * Copyright (c) 2000-2004 Sun Microsystems, Inc. All rights reserved. * PROPRIETARY/CONFIDENTIAL * Use is subject to license terms */package ch10;import javax.microedition.lcdui.Alert;impor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论