J2ME实验报告文档格式.docx

上传人:b****5 文档编号:21141454 上传时间:2023-01-27 格式:DOCX 页数:26 大小:293.85KB
下载 相关 举报
J2ME实验报告文档格式.docx_第1页
第1页 / 共26页
J2ME实验报告文档格式.docx_第2页
第2页 / 共26页
J2ME实验报告文档格式.docx_第3页
第3页 / 共26页
J2ME实验报告文档格式.docx_第4页
第4页 / 共26页
J2ME实验报告文档格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

J2ME实验报告文档格式.docx

《J2ME实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《J2ME实验报告文档格式.docx(26页珍藏版)》请在冰豆网上搜索。

J2ME实验报告文档格式.docx

3.源程序:

部分:

publicclassMyMIDletextendsMIDlet{

privateFormform;

privatefinalCommandcmdExit=newCommand("

Exit"

Command.EXIT,1);

privatechar[]charArray={

'

T'

'

h'

i'

s'

'

m'

y'

f'

r'

t'

J'

2'

M'

E'

p'

o'

g'

a'

.'

\n'

W'

e'

l'

c'

!

'

};

publicMyMIDlet(){

//TODOAuto-generatedconstructorstub

form=newForm("

HelloMyJ2ME"

);

StringBufferstrBuf=newStringBuffer();

for(inti=0;

i<

charArray.length;

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(){

protectedvoiddestroyApp(booleanarg0){

}

4.运行截图:

有图形的JavaMe应用

2010/10/21地点:

一.实验设备:

一台计算机。

二.实验目的:

实现一个关于高级图形用户界面的示例。

了解Display类、Displayable类和它们的实现方法;

掌握TextBox组件、List组件和它们的实现方法;

掌握Form及其Item和抽象命令事件。

三.实验内容及方法:

编写一个显示图形界面程序,在eclipse上运行,通过UI表现给用户。

将原图形的矩形改为正方形,将三角形改为直角三角形,并且对颜色相应改变。

四.实验过程:

①.分析实验需求,搜集相关的资料

②.编写程序,修改相应代码

③.在eclipse上面运行调试.输出结果

④.整理实验报告

部分

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:

}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;

menu.length;

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);

退出"

getWidth(),getHeight(),Graphics.RIGHT|Graphics.BOTTOM);

break;

caseLINE:

//直线的绘制

g.setColor(0xcdaba);

g.drawLine(140,80,140,20);

返回"

caseRECT:

//正方形的绘制和填充

g.setColor(0xaaaaaa);

g.drawRect(900,100,100,100);

g.setColor(0xbbbcdd);

g.fillRect(91,101,98,98);

caseTRIANGLE:

//直角三角形的绘制

g.setColor(0xdaaacb);

g.fillTriangle(100,40,40,40,100,100);

publicvoidrun(){

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编写游戏进一步提高。

开发简单的贪吃蛇游戏,正确运用各种类,编写程序,并且运行。

①.理解贪吃蛇的游戏原理编写输入贪吃蛇程序

②.编写输入贪吃蛇程序实验游戏

③.上机输入和调试自己所编的程序;

④.整理出实验报告。

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<

snakeNum;

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);

//绘制蛇身

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;

caseDIRECTION_LEFT:

snake[0][0]=snake[0][0]-SNAKEWIDTH;

caseDIRECTION_RIGHT:

snake[0][0]=snake[0][0]+SNAKEWIDTH;

*吃掉食物,自身增长

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))

booleanb=true;

if(foodX==snake[i][0]&

snake[i][1]==foodY){

b=false;

*判断游戏是否结束

*结束条件:

*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;

if(snake[0][0]==snake[i][0]

&

snake[0][1]==snake[i][1]){

}

returnfalse;

*事件处理

publicvoidkeyPressed(intkeyCode){

intaction=this.getGameAction(keyCode);

//改变方向

switch(action){

caseUP:

if(direction!

=DIRECTION_DOWN){

direction=DIRECTION_UP;

caseDOWN:

=DIRECTION_UP){

direction=DIRECTION_DOWN;

caseLEFT:

=DIRECTION_RIGHT){

direction=DIRECTION_LEFT;

caseRIGHT:

=DIRECTION_LEFT){

direction=DIRECTION_RIGHT;

caseFIRE:

//暂停和继续

isPaused=!

isPaused;

*线程方法

*使用精确延时

publicvoidrun(){

try{

while(isRun){

//开始时间

longstart=System.currentTimeMillis();

if(!

isPaused){

//吃食物

eatFood();

//移动

move(direction);

//结束游戏

if(isGameOver()){

//控制闪烁

b=!

b;

//重新绘制

repaint();

longend=System.currentTimeMillis();

//延时

if(end-start<

SLEEP_TIME){

Thread.sleep(SLEEP_TIME-(end-start));

}catch(Exceptione){}

(1)开始运行,蛇爬行,食物闪

(2)蛇头超出边界,游戏结束

(3)蛇身与食物重合,蛇吃掉食物,蛇身变长(4)蛇头碰到自身,游戏结束

(5)按确定键,游戏暂停,再按,游戏继续

2010/10/28地点:

8—209

一.实验设备:

一台计算机.

修改一个开发出来的JavaME聊天工具,增添其功能。

了解GCF通用连接方法,熟悉JavaME通讯方式,熟悉掌握LogForm类、HallList类和ChatForm类。

将已经编号的实验成寻导入到eclipse,运行。

查看其源代码,并进行修改。

使其在登录的时候能够提供记住当前密码的选项。

运行修改后的程序。

①.导入已经开发好的聊天工具程序

②.读聊天程序,并进行修改:

在登录项里面添加一个“记住密码“项。

③.调试运行程序。

publicLogForm(String

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1