j2me笑话浏览实验报告Word文件下载.docx

上传人:b****7 文档编号:22384574 上传时间:2023-02-03 格式:DOCX 页数:47 大小:572.51KB
下载 相关 举报
j2me笑话浏览实验报告Word文件下载.docx_第1页
第1页 / 共47页
j2me笑话浏览实验报告Word文件下载.docx_第2页
第2页 / 共47页
j2me笑话浏览实验报告Word文件下载.docx_第3页
第3页 / 共47页
j2me笑话浏览实验报告Word文件下载.docx_第4页
第4页 / 共47页
j2me笑话浏览实验报告Word文件下载.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

j2me笑话浏览实验报告Word文件下载.docx

《j2me笑话浏览实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《j2me笑话浏览实验报告Word文件下载.docx(47页珍藏版)》请在冰豆网上搜索。

j2me笑话浏览实验报告Word文件下载.docx

设置阅读模式界面类

3.2任务2:

完成接口com.ldci.game.Frame.Scene

3.2.1任务目的

(1)掌握接口使用法

(2)声明场景类中用到的方法,供场景类实现

3.2.2任务描述

在com.ldci.game.Frame包中的Scene接口里声明方法

//声明方法

publicvoidpaint(Graphicsg);

publicvoidkeyPressed(intkeyCode);

publicvoidkeyReleased(intkeyCode);

publicvoidlogic();

3.3任务3:

完成主Canvas界面类com.ldci.game.Frame.Main

3.3.1任务目的

(1)掌握静态对象调用方法

(2)掌握状态调用的原理

(3)实现Canvas界面类

3.3.2实现代码

packagecom.ldci.game.Frame;

importjavax.microedition.lcdui.Canvas;

importjavax.microedition.lcdui.Graphics;

importcom.ldci.game.state.Menu;

publicclassMainextendsCanvasimplementsRunnable{

//定义一个静态Scene对象sceneState调用状态

publicstaticScenesceneState=null;

//状态设置

publicstaticMaincanvas=null;

//canvas对象

Threadt=null;

publicMain(){

try{

canvas=this;

//本类对象

this.setFullScreenMode(true);

//设置全屏

//创建Menu类对象

Menumenu=newMenu();

//menu设置成当前界面

sceneState=menu;

t=newThread(this);

t.start();

}catch(Exceptione){

e.printStackTrace();

}

}

protectedvoidpaint(Graphicsg){

//通过sceneState显示当前状态里的paint()方法

sceneState.paint(g);

protectedvoidkeyPressed(intkeyCode){

//通过sceneState调用当前显示状态的keyPressed方法

sceneState.keyPressed(keyCode);

protectedvoidkeyReleased(intkeyCode){

//通过sceneState调用当前显示状态的keyReleased方法

sceneState.keyReleased(keyCode);

publicvoidlogic(){

//调用当前显示状态的logic方法

sceneState.logic();

publicvoidrun(){

while(true){

logic();

Thread.sleep(100);

repaint();

}

}

3.4任务4:

完成常用量类mon.Const

3.4.2任务目的

(1)掌握Const类使用

(2)定义屏幕分辨率的宽度

(3)申明按键值,按照机型的键值定义

(4)声明字体设置,把项目中所要用到的字体定义,高度通过定义字体来获得

(5)申明图片路径

(6)申明菜单状态

3.4.1实现代码

packagemon;

importjava.io.ByteArrayInputStream;

importjava.io.ByteArrayOutputStream;

importjava.io.DataInputStream;

importjava.io.IOException;

importjava.io.InputStream;

importjava.util.Vector;

importjavax.microedition.lcdui.Font;

importcom.ldci.game.midlet.Midlet;

publicclassConst{

/**

*屏幕分辨率

*/

publicstaticfinalintscreenWidth=240;

//屏幕宽度

publicstaticfinalintscreenHeight=310;

//屏幕高度

*按键键值

publicstaticfinalintKEY_UP=-1;

//方向键上键

publicstaticfinalintKEY_DOWN=-2;

//方向键下键

publicstaticfinalintKEY_LEFT=-3;

//方向键左键

publicstaticfinalintKEY_RIGHT=-4;

//方向键右键

publicstaticfinalintKEY_OK=-5;

//中间键

publicstaticfinalintKEY_SOFT_LEFT=-6;

//左软键

publicstaticfinalintKEY_SOFT_RIGHT=-7;

//右软键

 

*字体设置

//定义小系统字体

publicstaticFontsmallFont=Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN,Font.SIZE_SMALL);

publicstaticintfontHeight=smallFont.getHeight();

publicstaticintspace=10;

/**

*菜单状态

publicstaticfinalintSTATE_MENU=6;

publicstaticfinalintSTATE_READ=0;

publicstaticfinalintSTATE_SEARCH=1;

publicstaticfinalintSTATE_OPTION=2;

publicstaticfinalintSTATE_HELP=3;

publicstaticfinalintSTATE_ABOUT=4;

publicstaticfinalintSTATE_EXIT=5;

*图片路径数组

*/

publicstaticString[]resource={

"

/beijing1.png"

//0

/beijing2.png"

//1

/beijing3.png"

//2

/beijing4.png"

//3

/xiaohua.png"

//4

/read.png"

//5

/sousuo.png"

//6

/option.png"

//7

/help.png"

//8

/about.png"

//9

/exit.png"

//10

/arrowUp.png"

//11

/arrowDown.png"

//12

/arrowLeft.png"

//13

/arrowRight.png"

//14

};

*菜单文字数组

publicstaticString[]menuStr={

阅读"

搜索"

设置"

*阅读笑话类型文字数组

publicstaticString[]readTypeStr={

名人"

"

幽默"

动物"

*阅读模式文字数组

publicstaticString[]readModeStr={

白天模式"

夜晚模式"

3.5任务5:

完成常用方法mon.GameCommon

3.5.1任务目的

(1)GameCommon类属于工具类,掌握其使用

(2)类中有清屏方法、读取文本数据方法(加载笑话文本)、文本换行方法、画左右软键的方法。

3.5.2实现代码

importcom.ldci.game.Frame.Main;

importcom.ldci.game.state.Option;

publicclassGameCommon{

*清屏

publicstaticvoidclean(Graphicsg){

g.setColor(0xffffff);

g.fillRect(0,0,Const.screenWidth,Const.screenHeight);

*加载笑话文本

publicstaticString[]loadText(){

String[]result=newString[8];

InputStreamis=null;

try{

is=Midlet.instance.getClass().getResourceAsStream("

/xiaohua.txt"

);

//readLine(is);

for(inti=0;

i<

result.length;

i++){

result[i]=readLine(is);

//System.out.println("

Index["

+i+"

]:

"

+result[i]);

}catch(Exceptione){

System.out.println("

thereisaerrorwhenloadtext:

+e.toString());

}finally{

try{

is.close();

is=null;

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

returnresult;

publicstaticStringreadLine(InputStreamis)throwsIOException{

byte[]data;

Stringstr;

intb;

ByteArrayOutputStreambaos;

baos=newByteArrayOutputStream();

b=0;

while((b=is.read())!

=-1){

if(b==10){

break;

if(b!

=13){

baos.write(b);

baos.close();

data=baos.toByteArray();

if(data.length>

0){

str=convertFromUTF8(data);

elseif(b!

str="

;

else{

str=null;

baos=null;

returnstr;

catch(Exceptione){

return"

x"

publicstaticStringconvertFromUTF8(byte[]data){

if(data==null){

returnnull;

intlen=data.length;

byte[]newdata=newbyte[len+2];

newdata[0]=(byte)(len>

>

8);

newdata[1]=(byte)len;

System.arraycopy(data,0,newdata,2,len);

ByteArrayInputStreambis=newByteArrayInputStream(newdata);

DataInputStreamdis=newDataInputStream(bis);

returndis.readUTF();

returnnull;

/**

*文本换行

*/

publicstaticfinalString[]changeToArrayCn(Stringstr,Fontfont,intwidth){

intnowWidth=0;

Vectorresult=newVector();

StringBufferbuffer=newStringBuffer();

for(inti=0;

str.length();

i++){

charch=str.charAt(i);

intchWidth=font.charWidth(ch);

if(ch=='

['

||ch=='

]'

~'

^'

\r'

chWidth=0;

||ch=='

|'

){

result.addElement(buffer.toString());

buffer=newStringBuffer();

nowWidth=0;

continue;

}

nowWidth+=chWidth;

if(nowWidth>

=width){

if(!

isSign(ch)){

result.addElement(buffer.toString());

buffer=newStringBuffer();

nowWidth=chWidth;

buffer.append(ch);

if(buffer.length()>

0)

result.addElement(buffer.toString());

String[]s=newString[result.size()];

s.length;

s[i]=(String)result.elementAt(i);

if(s[i].charAt(0)=='

\n'

s[i]=s[i].substring

(1);

//System.out.println(i+"

:

+s[i]);

returns;

privatestaticfinalchar[]SIGN_ALL={'

'

'

'

.'

?

!

'

//English

'

\uFF0C'

\u3002'

\uFF1F'

\uFF01'

\uFF1B'

\u3001'

//Chinese

privatestaticfinalbooleanisSign(charch){

for(inti=SIGN_ALL.length-1;

i>

=0;

i--){

if(ch==SIGN_ALL[i]){

returntrue;

returnfalse;

/*

*画左右软键

publicstaticvoiddrawSoftButton(Graphicsg,Stringlstr,Stringrstr){

if(Menu.menuIndex==Const.STATE_READ&

&

Option.isReadMode==true){

}else{

g.setColor(0);

if(lstr!

=null){

g.drawString(lstr,0,Const.screenHeight,Graphics.LEFT|Graphics.BOTTOM);

if(rstr!

=null)

{

g.drawString(rstr,Const.screenWidth,Const.screenHeight,Graphics.RIGHT|Graphics.BOTTOM);

3.6任务6:

完成菜单界面类com.ldic.game.state.Menu

3.6.1任务目的

(1)掌握Graphics画笔的使用

(2)掌握按键的处理方法

(3)Menu类里的paint()方法中,画背景,先清屏然后绘制背景图片

(4)Menu类里的paint()方法中添加绘制菜单

(5)Menu类里的keypressed()方法中增加按键选择菜单功能,处理向上按键的功能

(6)Menu类里的keyPressed()方法中增加按键选择菜单功能,处理向下按键的功能

(7)Menu类里的keyPressed()方法中增加按键选择菜单功能,处理中间键、左软键的功能

(8)Menu类里的keypressed()方法中增加按键退出程序功能,处理右软键

4.6.2实现代码

*清屏并绘制背景图片

packagecom.ldci.game.state;

importjavax.microedition.lcdui.Image;

importcom.ldci.game.Frame.Scene;

importmon.Const;

importmon.GameCommon;

importcom.ldci.game.midlet.Mid

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

当前位置:首页 > 解决方案 > 其它

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

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