Eclipse实验报告精品管理资料.docx
《Eclipse实验报告精品管理资料.docx》由会员分享,可在线阅读,更多相关《Eclipse实验报告精品管理资料.docx(52页珍藏版)》请在冰豆网上搜索。
Eclipse实验报告精品管理资料
南华大学
实验报告
(2010年到2011学年第一学期)
课程名称:
J2ME程序设计
班级:
本08计算1班
学号:
20084440101
姓名:
袁洁
教师:
汪凤麟
2010年上学期
实验名称:
创建简单的JAVAME应用
时间:
2010/10/21地点:
8栋实验室
一、实验设备:
1.计算机
2.Eclipse环境
Eclipse是一种可扩展的开放源代码IDE.集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。
为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。
Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上.任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。
除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。
利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。
Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台.Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。
缺点就是较复杂,对初学者来说,理解起来比较困难.
二、实验目的:
1。
创建MIDlet项目
2。
检验Eclipse设置
3。
创建JavaMe项目
4。
添加MIDlet到项目
5.编辑JavaMe元素
6。
运行与调试
7.向真机发布程序
三、实验内容及方法:
四、实验过程:
1。
实验步骤
在创建JavaMe项目之前,先检查一下Eclipse设置是否完整
1.EclipseME插件的检查
首先,检查一下是否已经安装好EclipseME插件,成功安装好EclipseME插件时,可以从3个地方看到。
(1)选择File→New→Project菜单命令,弹出NewProject对话框,如图1—1所示。
图1—1
可以看到新建项目的对话框中有一个J2ME选项,这表明插件已经安装成功.
(2)同样,选择Help菜单,可以看到多出一个帮助选项EclipseME,如图1-2所示。
图1—2
(3)从菜单栏中选择Window→Preferences命令,弹出“首选项”对话框,如图1-3所示。
可以从中看到J2ME的配置首选项。
图1—3
2.Eclipse的J2ME环境配置检查
Eclipse中J2ME的环境在首选项中进行配置,先检查一下Antenna设置,这个设置主要是针对J2ME项目开发打包用的.
这里的配置情况如图1-4所示。
配置好后,接下来最关键的是检验是否导入J2ME的仿真器设备,选中J2ME→DeviceManagement,如果导入了设备,则可以看到其设备的列表,如图1—5所示.
图1-5
3。
创建JavaMe项目
经过配置检查后,在确保配置正确的条件下,可以开始进行JavaME项目创建的工作。
在Eclipse的菜单栏中选择New→Project命令,弹出NewProject对话框,如图1-6所示。
图1—6
选中J2ME→J2MEMidletSuite,单击Next按钮,进入NewJ2MEProject向导,如图1—7所示。
图1—7
在图1-7中输入项目名称MyJ2ME,然后单击Next按钮,进入MidletSuite设置页面,如图1-8所示.
图1—8
在图1—8中对Device中的Group进行选择,选择“SunJavaWirelessToolkit2。
3”,Device选择“DefaultColorPhone"。
如果这两项信息都没有,那么需要单击ManageDevices按钮,回到环境设置界面,重新进行配置。
Jad名以工程默认的为准,设置好后,选择Next按钮,进入Java设置界面,如图1—9所示.
图1-9
在图1-9中采用默认设置即可,然后单击Finish按钮,JavaME项目便创建好了。
4。
添加MIDlet到项目
通过Eclipse新建向导添加新的MIDlet,具体操作如下。
(1)从菜单栏中选择New→Other命令,将弹出新建向导对话框,如图1-12所示.
图1—12
(2)在图1—12中选择J2ME→J2MEMidlet,再单击Next按钮,将进入J2MEMidlet创建界面,如图1-13所示。
图1—13
(3)在图1-13中输入MIDlet类名“MyMIDlet”,其他都按图中所示输入即可。
单击Finish按钮,就完成了创建和添加MIDlet的操作.
5.运行与调试
项目编辑完毕,需要运行,有3种选择运行配置的方法:
●菜单Run→RunConfigurations。
●单击工具栏上的工具按钮,选择RunConfigurations.
●在J2ME工程处右击,从快捷菜单中选择RunAs→RunConfigurations。
以上三种选择方法弹出的都是运行界面,如图1—14所示。
图1-14
在图1-14中选择WirelessToolkitEmulator,双击或选择快捷菜单中的New命令,将新建一个运行配置,如图1-15所示.
在图1—15的Name文本框中输入运行配置的名称“MyJ2ME”,在Midlet文本框后面单击Search按钮,弹出可供选择的MIDlet界面,如图1—16所示。
在图1—16中选择所需运行的MIDlet,单击OK按钮即可.
运行所编辑的MIDlet,单击图1—15运行配置界面中的Run按钮,项目开始编译及运行,并弹出仿真器,仿真器中显示了运行结果,如图1—17所示。
图1—17
2.流程图:
3.源程序:
packagecom.myj2me;
//把“退出”键改成Stop,把“ThisismyfirstJ2ME",把“Hello"改为“Hi"。
importjavax.microedition。
lcdui。
Command;
importjavax。
microedition。
lcdui。
CommandListener;
importjavax.microedition。
lcdui。
Display;
importjavax。
microedition.lcdui。
Displayable;
importjavax。
microedition.lcdui.Form;
importjavax.microedition。
midlet.MIDlet;
publicclassMyMIDletextendsMIDlet{
privateFormform;
privatefinalCommandcmdStop=newCommand(”Stop”,Command。
STOP,1);
privatechar[]charArray={
'w',’e’,’l’,'c’,'o’,'m’,’e'};
publicMyMIDlet(){
//TODOAuto—generatedconstructorstub
form=newForm("HiMyJ2ME”);
StringBufferstrBuf=newStringBuffer();
for(inti=0;i〈charArray。
length;i++)
{
strBuf。
append(charArray[i]);
}
form.append(strBuf。
toString());
form。
addCommand(cmdStop);
form。
setCommandListener(newCommandListener(){
publicvoidcommandAction(Commandarg0,Displayablearg1){
//TODOAuto—generatedmethodstub
if(cmdStop==arg0){
notifyDestroyed();
destroyApp(true);
}
}
});
}
protectedvoidstartApp(){
//TODOAuto-generatedmethodstub
Display。
getDisplay(this)。
setCurrent(form);
}
protectedvoidpauseApp(){
//TODOAuto—generatedmethodstub
}
protectedvoiddestroyApp(booleanarg0){
//TODOAuto-generatedmethodstub
}
}
实验名称:
开发带有图形的JavaME应用
时间:
2010/10/21地点:
8栋实验室
五、实验设备:
1.计算机
2.Eclipse环境:
Eclipse是一种可扩展的开放源代码IDE.集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。
为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。
Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。
任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。
除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。
利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。
Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台。
Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。
缺点就是较复杂,对初学者来说,理解起来比较困难。
六、实验目的:
●熟悉实现用户界面的类与组件
●熟悉高级界面的实现
●了解Form所包含的ImageItem类
●低级界面的绘制
七、实验内容及方法:
Form窗体是Screen的一个子类,可以包含图片、只读文本、可编辑文本、进度条、选项组以及自定义项目,这些都是Item类的子类.也就是说,任何一个Item子类都可以显示在Form窗体中。
而Imageltem是Form的一个子类,主要用于显示图片对象。
本实验就是在Form窗体中运用ImageItem子类显示图片.
八、实验过程:
1.实验步骤
(1)创建项目
(2)添加MIDlet架构类
(3)编译与运行结果
2.流程图:
3。
源程序:
//增加了退出按钮,改变了图像显示的顺序与位置
packagech6;
importjavax.microedition.lcdui.Command;
importjavax.microedition.lcdui。
Display;
importjavax。
microedition。
lcdui。
Form;
importjavax。
microedition.lcdui。
Image;
importjavax.microedition.lcdui。
ImageItem;
importjavax。
microedition。
lcdui。
Item;
importjavax。
microedition.lcdui.ItemCommandListener;
importjavax。
microedition.midlet.MIDlet;
importjavax。
microedition.midlet.MIDletStateChangeException;
publicclassImageItemMIDletextendsMIDletimplementsItemCommandListener{
privateFormform;
privateCommandcmdExit=newCommand(”退出”,Command.EXIT,1);
privateCommandcmdImgItem1=newCommand("PLAIN",Command。
ITEM,1);
privateCommandcmdImgItem2=newCommand(”Button”,Command。
ITEM,1);
privateCommandcmdImgItem3=newCommand("Hyperlink”,Command。
ITEM,1);
publicImageItemMIDlet(){
//TODOAuto—generatedconstructorstub
try{
Imageimage1=Image.createImage(”/image2。
png”);
ImageItemimageItem1=newImageItem(”1左对齐显示",image1,Item.LAYOUT_LEFT,null,Item。
PLAIN);
imageItem1.setItemCommandListener(this);
imageItem1.addCommand(cmdImgItem1);
Imageimage2=Image.createImage(”/image1。
png”);
ImageItemimageItem2=newImageItem(”2居中显示”,image2,Item.LAYOUT_CENTER,null,Item.BUTTON);
imageItem2.setItemCommandListener(this);
imageItem2.addCommand(cmdImgItem2);
Imageimage3=Image.createImage(”/image3。
png”);
ImageItemimageItem3=newImageItem(”3右对齐显示”,image3,Item.LAYOUT_RIGHT,null,Item.HYPERLINK);
imageItem3。
setItemCommandListener(this);
imageItem3.addCommand(cmdImgItem3);
imageItem3。
addCommand(cmdExit);
imageItem2。
addCommand(cmdExit);
imageItem1.addCommand(cmdExit);
form=newForm("ImageItem的显示”);
form。
append(imageItem2);
form。
append(imageItem3);
form。
append(imageItem1);
}catch(Exceptione){
e。
printStackTrace();
}
}
protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{
//TODOAuto—generatedmethodstub
}
protectedvoidpauseApp(){
//TODOAuto-generatedmethodstub
}
protectedvoidstartApp()throwsMIDletStateChangeException{
//TODOAuto—generatedmethodstub
Display。
getDisplay(this)。
setCurrent(form);
}
publicvoidcommandAction(Commandcommand,Itemitem){
//TODOAuto—generatedmethodstub
if(command==cmdImgItem1){
System.out。
println(”ImageItemPlain");
}elseif(command==cmdImgItem2){
System。
out。
println("ImageItemButton”);
}elseif(command==cmdImgItem3){
System。
out.println(”ImageItemHyperlink”);
}
}
}
实验名称:
利用Eclipse开发单机游戏示例
时间:
2010/10/21地点:
8栋实验室
九、实验设备:
1.计算机
2.Eclipse环境
Eclipse是一种可扩展的开放源代码IDE.集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。
为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。
Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。
任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。
除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。
利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。
Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台。
Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术.缺点就是较复杂,对初学者来说,理解起来比较困难。
十、实验目的:
完成一个小型贪吃蛇游戏开发,简单实现功能
1、项目功能及要求
1)游戏策划,定义游戏规则。
2)游戏规则实现;
3)界面清晰,功能完备.
4)能在模拟器上运行。
2、项目内容和要求
1)J2ME手机游戏开发MIDP程序编制;
2)综合掌握调试手机游戏程序技巧;
3)手机程序代码优化;
4)高级用户界面设计;
5)低级用户界面设计;
十一、实验内容及方法
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,接着又随机出现食物,等待蛇来吃,贪吃蛇碰到自身身体游戏不结束而是咬掉自己身体的一部分继续游戏,如果蛇在移动中撞到墙则游戏结束(判断蛇是否撞倒墙则蛇死,false).程序关键在于表示蛇的图形及蛇的移动。
用一个小矩形快表示蛇的一节身体,身体每长一节,增加一个矩形块,不按任意键,蛇自行在当前方向上前移,但按下有效方向键后,蛇头朝着该方向移动,一步移动一节身体。
十二、实验过程:
1。
实验步骤
(1)创建Snake项目
(2)添加游戏架构类
(3)编译与运行结果
更改了背景色蛇咬了自己的身体撞墙则游戏结束
2.流程图:
3.源程序:
//修改了游戏结束判断标准,贪吃蛇碰到自身身体游戏不结束而是咬掉自己身体的一部分,更改屏幕背景颜色
importjava。
util。
Random;
importjavax。
microedition.lcdui.Canvas;
importjavax.microedition.lcdui。
Graphics;
publicclassSnakeCanvasextendsCanvasimplementsRunnable{
/**食物的左上角X坐标*/
privateintfoodX;
/**食物的左上角Y坐标*/
privateintfoodY;
/**食物的颜色值*/
privateintfoodC;
/**贪吃蛇*/
privateint[]snake=newint[200*3];
/**贪吃蛇食物宽度*/
privatefinalintSNAKE_W=4;
/**贪吃蛇食物长度*/
privatefinalintSNAKE_H=4;
/**贪吃蛇的身体长度,即包含食物的个数*/
privateintsnakeNum;
/**方向变量*/
privateintdirection;
/**方向上*/
privatefinalintDIR_UP=0;
/**方向下*/
privatefinalintDIR_DOWN=1;
/**方向左*/
privatefinalintDIR_LEFT=2;
/**方向右*/
privatefinalintDIR_RIGHT=3;
/**Random对象,控制食物的随机出现*/
Randomrandom=newRandom();
/**可选颜色值*/
privatefinalint[]COLOR={0xff0000,0x00ff00,0x0000ff,0xffff00,0xff00ff,0x00ffff,0xff000f};
/**线程对象*/
privateThreadthread;
/**线程控制变量*/
privatebooleanisShow=true;
/**游戏是否退出控制变量*/
privatebooleanisExit=false;
/**屏幕宽*/
privateintSCREEN_W;
/**屏幕高*/
privateintSCREEN_H;
publicSnakeCanvas(){
//TODOAuto—generatedconstructorstub
/**获取屏幕宽度和高度*/
SCREEN_W=this。
getWidth();
SCREEN_H=this.getHeight();
//初始化贪吃蛇的长度
snakeNum=7;
for(inti=0;i〈snakeNum;i++){
snake[i*3+0]=10