J2ME手机程序连接服务器2.docx

上传人:b****6 文档编号:7391990 上传时间:2023-01-23 格式:DOCX 页数:47 大小:1.82MB
下载 相关 举报
J2ME手机程序连接服务器2.docx_第1页
第1页 / 共47页
J2ME手机程序连接服务器2.docx_第2页
第2页 / 共47页
J2ME手机程序连接服务器2.docx_第3页
第3页 / 共47页
J2ME手机程序连接服务器2.docx_第4页
第4页 / 共47页
J2ME手机程序连接服务器2.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

J2ME手机程序连接服务器2.docx

《J2ME手机程序连接服务器2.docx》由会员分享,可在线阅读,更多相关《J2ME手机程序连接服务器2.docx(47页珍藏版)》请在冰豆网上搜索。

J2ME手机程序连接服务器2.docx

J2ME手机程序连接服务器2

J2ME手机程序连接服务器——实现上传数据与返回数据

实现的具体功能:

手机页面具有闪屏功能,连接服务器后可以上传数据,并返回数据,返回的数据在手机里以列表的形式展现出来(列表的数据实现了分页功能),点击列表里的具体列,弹出详细列表,在此可以查看详细信息相对应的图片(图片来源于服务器端下载时有进度条显示图片下载的进度)。

以下是具体实现的代码:

首先介绍一下在MyEclipse里创建手机程序与运行效果

如下:

第一个手机程序helloworld

通过MyEclipse创建手机程序

1.建立项目

2.在项目里建立类

3.运行手机程序

 

运行程序后出现的效果如下:

4.手机程序类及其其中的代码.

publicclassCheshiextendsMIDlet{

publicCheshi(){

//TODOAuto-generatedconstructorstub

}

protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{

//TODOAuto-generatedmethodstub

}

protectedvoidpauseApp(){

//TODOAuto-generatedmethodstub

}

protectedvoidstartApp()throwsMIDletStateChangeException{

//TODOAuto-generatedmethodstub

}

}

5.在手机屏幕上显示helloworld

一个MIDlet通常由若干个屏幕组成,每个屏幕包含若干个组件元素.程序的运行依赖于屏幕之间的调节和切换,而Display起调节和管理的重要角色。

publicclassCheshiextendsMIDlet{

privateDisplaydisplay;

publicCheshi(){

//TODOAuto-generatedconstructorstub

display=Display.getDisplay(this);

}

protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{

//TODOAuto-generatedmethodstub

}

protectedvoidpauseApp(){

//TODOAuto-generatedmethodstub

}

protectedvoidstartApp()throwsMIDletStateChangeException{

//TODOAuto-generatedmethodstub

}

}

Display可以在MIDlet中调节不同屏幕,使其中一个成为当前屏幕显示出来就需要Displayable对象的参数.

Displayable包含多个多个子类,以下以TextBox为例

publicclassCheshiextendsMIDlet{

privateDisplaydisplay;

privateTextBoxt;

publicCheshi(){

//TODOAuto-generatedconstructorstub

display=Display.getDisplay(this);

t=newTextBox("第一个手机程序标题","helloworld",30,TextField.ANY);

}

protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{

//TODOAuto-generatedmethodstub

}

protectedvoidpauseApp(){

//TODOAuto-generatedmethodstub

}

protectedvoidstartApp()throwsMIDletStateChangeException{

//TODOAuto-generatedmethodstub

display.setCurrent(t);

}

}

运行程序的结果为:

以上是一个简单的新建手机项目的建立与运行

下面我们将建立一个具有客户端与服务器端等一系列功能的程序代码:

手机客户端:

 

PublicclasshhhaaaextendsMIDletimplementsCommandListener,Runnable{

Formform,formmx,xxxx,formtp;

TextFieldtxbh,txxm,txxb,txmz,fcx;

DateFieldtxcsny;

Commandqd,tc,txtc,tp,fh,fhtp,qx;

Listlista,listmx;

Displaydis;

Alertalt1;

Imageimag,image;

Stringscabcl,bz,bza,ural;

Stringcxbh;

intleng,a;

Mcancan;

这段程序主要是下载图片的:

1.下载图片我们考虑到了进度条,我们用了Canvas类中的paint()来绘制进度条

publicclassXiazaiextendsMIDletimplementsCommandListener,Runnable

{

Displaydis;

intleng,a;

Listlistmx;

Mcancan;

Alertalt1;

Commandqx,fh,tp,qdcx;

TextFieldcxtj;

Formformtp,xxxx,formcx;

Stringbz,bza;

Stringstr;

Stringural,cxbh;

Imageimage;

classMcanextendsCanvasimplementsRunnable

{

Threadt;

booleanisFinished=false;

publicvoidrun()

{

while(!

isFinished)

try

{

repaint();

}

catch(Exceptionexception){}

}

publicMcan()

{

t=newThread(this);

}

protectedvoidpaint(Graphicsg){

bytebyte0=20;

inti=getHeight()/2-2;

intj=getWidth()-40;

bytebyte1=8;

g.setColor(0xffffff);

g.fillRect(0,0,getHeight(),getHeight());

g.setColor(0);

g.drawString("下载中......",byte0,i-20,20);

g.drawRect(byte0,i,j,byte1);

g.setColor(255);

if(leng==0)

{

}

else

{

g.fillRect(byte0,i,(a*j)/leng,byte1);

}

}

}

publicvoidhhhaaa(){

form=newForm("演示");

txbh=newTextField("编号:

",null,10,0);

txxm=newTextField("姓名:

",null,10,0);

txxb=newTextField("性别:

",null,10,0);

txmz=newTextField("民族:

",null,10,0);

txcsny=newDateField("出生年月:

",DateField.DATE,TimeZone.getTimeZone("cst"));

form.append(txbh);

form.append(txxm);

form.append(txxb);

form.append(txmz);

form.append(txcsny);

form.setCommandListener(this);

qd=newCommand("确定",Command.SCREEN,1);

tc=newCommand("退出",Command.SCREEN,1);

form.addCommand(qd);

form.addCommand(tc);

form.setCommandListener(this);

lista=newList("请选择相应操作",List.IMPLICIT);

lista.append("1录入信息",null);

lista.append("2查询信息",null);

lista.append("3其他",null);

lista.setCommandListener(this);

}

protectedvoidstartApp()throwsMIDletStateChangeException{

Alertalt=newAlert("闪图");

imag=alt.getImage();

try{

alt.setImage(imag.createImage("/001.jpg"));

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

dis=Display.getDisplay(this);

dis.setCurrent(alt,lista);

}

protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{//TODOAuto-generatedmethodstub}

protectedvoidpauseApp(){

//TODOAuto-generatedmethodstub

}

 

publicvoidcommandAction(Commandarg0,Displayablearg1){

if(arg1.equals(listmx))

{

if(com==List.SELECT_COMMAND)

{

intzz=listmx.getSelectedIndex();

Stringkk=listmx.getString(zz);

String[]ss=getStrArray(kk,"/");

cxbh=ss[0];

str=ss[0].toString().trim();

str="bz=mx"+"&xm="+str;

bz="nopic";

bza="mx";

sevletsc();

}

}

if(arg0==qx)

{

dis.setCurrent(listmx);

}

if(arg1.equals(lista))

{

if(arg0==List.SELECT_COMMAND)

{

intaa=lista.getSelectedIndex();

switch(aa){

case0:

dis.setCurrent(form);

break;

case1:

dis.setCurrent(formmx);

break;

}

}

}

if(arg0==tp)

{

bz="pic";

a=0;

dis.setCurrent(can);

sevletsc();

Threadkm=newThread(can);

km.start();

}

if(arg0==txtc)

{

if(fcx.getString().trim().equals(""))

{

alt1.setString("查询条件不能为空");

dis.setCurrent(alt1,dis.getCurrent());

}

scabcl=fcx.getString().trim();

System.out.println(scabcl);

scabcl="bz=cx"+"&xm="+scabcl;

bz="nopic";

bza="cx";

sevletsc();

}

if(arg0==fh)

{

dis.setCurrent(lista);

}

if(arg0==qd)

{

alt1=newAlert("");

if(txbh.getString().trim().equals(""))

{

alt1.setString("编号不能为空");

dis.setCurrent(alt1,dis.getCurrent());

return;

}

Stringsca,scb,scc,scd,sce;

sca=txbh.getString().trim();

scb=txxm.getString().trim();

scc=txxb.getString().trim();

scd=txmz.getString().trim();

sce=txcsny.getDate().toString().trim();

scabcl="bz=lr"+"&bh="+sca+"&xm="+scb+"&xb="+scc+"&mz="+scd+"&csny="+sce;

bz="nopic";

bza="lr";

sevletsc();

}以下为分页:

if(arg0==cx){

newThread(this).start();

dis.setCurrent(cxmxpm);

查询按钮,此按钮是图3-1中的查询按钮

图表3-1

点击查询按钮弹出第一页list(如图4-1)并且有下一页,上一页,首页,末页,跳转等功能菜单

图表4-1

1.下一页

if(arg0==cxxy)

{

if(!

String.valueOf(ys).trim().equals(zys.trim()))

{

cxmxpm.deleteAll();

ys=ys+1;

newThread(this).start();

dis.setCurrent(cxmxpm);

}

else

{

alert=newAlert("本页为末页!

");

dis.setCurrent(alert,cxmxpm);

}

}

2.上一页

if(arg0==cxsy)

{

if(ys!

=1)

{

cxmxpm.deleteAll();

ys=ys-1;

newThread(this).start();

dis.setCurrent(cxmxpm);

}

else

{

alert=newAlert("本页为首页!

");

dis.setCurrent(alert,cxmxpm);

}

}

3.首页

if(arg0==cxshouy)

{

cxmxpm.deleteAll();

ys=1;

newThread(this).start();

dis.setCurrent(cxmxpm);

}

 

4.末页

if(arg0==cxmoy)

{

cxmxpm.deleteAll();

ys=Integer.valueOf(zys).intValue();

newThread(this).start();

dis.setCurrent(cxmxpm);

}

5.跳转

当点击跳转按钮时,将出现新的FORM屏幕如图5-1

图表5-1

其中有两个按钮分别是查询和返回

(1)查询

if(cmd==tzcx)

{

if(Integer.valueOf(tztx.getString()).intValue()>Integer.valueOf(zys).intValue()&&Integer.valueOf(tztx.getString()).intValue()<0)

{

alert=newAlert("页数不存在");

dis.setCurrent(alert,cxmxpm);

}

else

{

ys=Integer.valueOf(tztx.getString()).intValue();

System.out.println(ys);

cxmxpm.deleteAll();

newThread(this).start();

dis.setCurrent(cxmxpm);

}

(2)返回

if(cmd==tzfh)

{

dis.setCurrent(cxmxpm);

}

分页结束

}

publicvoidrun()

{

HttpConnectionhtc=null;

DataInputStreamdain=null;

DataOutputStreamdos=null;

InputStreaminput;

StringBufferstb=newStringBuffer();

if(bz.equals("nopic"))

{

ural="http:

//localhost:

8080/ww/sj";

}

else{

ural="http:

//localhost:

8080/ww/"+cxbh+".jpg";

}

try{

htc=(HttpConnection)Connector.open(ural);

if(bz.equals("nopic"))

{

htc.setRequestMethod("POST");

htc.setRequestProperty("Content-Language","en-US");

byte[]bytesa=str.getBytes();

htc.setRequestProperty("Content-Type","application/x-www-forurlencoded");

htc.setRequestProperty("ContentLength",Integer.toString(bytesa!

=null?

bytesa.length:

0));

dos=htc.openDataOutputStream();

dos.write(bytesa);

}

if(bz.equals("nopic")){

dain=htc.openDataInputStream();

stb.append(dain.readUTF());

Stringssaa=stb.toString();

System.out.println("传回结果:

"+stb);

jgcl(bza,ssaa);

}

.append(dain.readUTF());

Stringssaa=stb.toString();

System.out.println("传回结果:

"+stb);

jgcl(bza,ssaa);

}

else

{

input=htc.openInputStream();

leng=(int)htc.getLength();

ByteArrayOutputStreambytearrayoutputstream=newByteArrayOutputStream();

inti;

while((i=input.read())!

=-1)

{

bytearrayoutputstream.write(i);

a++;

}

byteabyte1[]=bytearrayoutputstream.toByteArray();

bytearrayoutputstream.close();

image=Image.createImage(abyte1,0,abyte1.length);

ImageItemimac=newImageItem("测试图像",image,ImageItem.LAYOUT_CENTER,"图片无法显示");

formtp.deleteAll();

formtp.append(imac);

dis.setCurrent(formtp);

}

}catch(IOExceptione)

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

当前位置:首页 > 人文社科 > 文化宗教

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

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