网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  使用netbeans ide 5.0解决java me开发中的设备分裂问题     
  文章作者:未知  文章来源:水木森林  
  查看:77次  录入:管理员--2007-11-17  
 
  设备分裂问题给java me应用程序开发带来了不小的麻烦,在不同设备之间移植应用程序通常会遇到各种各样的问题。本文介绍如何使用netbeans ide 5.0提供的预处理代码功能解决设备分裂问题。
尽管java me平台的发展是有标准可依的,jcp组织通过jsr规范了java me平台的特性。但是,由于规范中包含众多的可选特性,这样各个厂商在实现过程中可能采取不同的方案。以mmapi(jsr 135)的实现为例,nokia 7610和sonyericsson k700都支持mmapi,同时也都支持图像捕获的功能,但是在支持的图片格式上以及图片的尺寸上却存在着差别。nokia 7610支持png和jpeg格式,但是sonyericsson k700只支持jpeg格式,且图片的尺寸必须为120*160。这样就造成了一套应用程序很难在不同机型之间移植的问题,如果为每个机型都维持一套代码又显得效率不高。如何解决上述问题呢?

mobility pack提供的预处理代码功能正是为这个问题设计的,你可以通过预处理功能,维护着一套代码,但是却可以编译出多套应用程序。每套应用程序可以针对一个机型或者一系列的机型。下面通过一个例子yanshi如何使用预处理代码的功能。

首先你需要安装netbeans ide 5.0和mobility pack 5.0,然后将motorola j2me sdk 5.4.2和sonyericsson j2me sdk 2.2.3集成到netbeans ide中。方法参考下面的文章

安装netbeans ide 4.1中文版

使用netbeans ide 4.1和mobility pack开发j2me应用程序

使用netbeans ide集成motorola j2me sdk 5.4.2

下面新建一个mobile项目,命名为procode。然后新建testmidlet,我们的目的是演示如何使用预处理代码,因此例子比较简单,testmidlet代码如下所示:

package com.sun.df;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

/**

*

* @author mingjava

* @version

*/

public class testmidlet extends midlet {

private display display = null;

private maincanvas canvas = null;

public void startapp() {

if(display == null){

display = display.getdisplay(this);

canvas = new maincanvas();

}

display.setcurrent(canvas);

}

public void pauseapp() {

}

public void destroyapp(boolean unconditional) {

}

}

netbeans ide之所以可以根据预处理代码编译出多套应用程序,原因在于它将项目与配置绑定到一起。集成了motorola和sonyericsson的sdk后,我们就可以把a780和sonyericsson_k700_emu的配置添加到项目中,方法是选择set active project configuration——add configuration to project。如下图所示:

使用netbeans ide 5.0解决java me开发中的设备分裂问题(图一)

maincanvas的任务是在手机的屏幕上显示一个字符串,这个字符串应该根据机型不同而不同。例如在motorola a780上显示a780,在k700上显示k700。我们在maincanvas的构造器中对变量message进行赋值,在代码编辑器中选择右键,preprocessor blocks——create if/else block,向maincanvas中插入预处理代码,如下图所示:

使用netbeans ide 5.0解决java me开发中的设备分裂问题(图二)

maincanvas的源码如下所示:

package com.sun.df;

import javax.microedition.lcdui.canvas;

import javax.microedition.lcdui.graphics;

/**

*

* @author mingjava

*/

public class maincanvas extends canvas {

private string message = "wtk 2.2";

public maincanvas() {

//#if a780

//# message = "motorola a780";

//#elif sonyericsson_k700_emu

//# message = "sonyericsson k700";

//#endif

}

public void paint(graphics g){

int color = g.getcolor();

g.setcolor(0xffffff);

g.fillrect(0,0,getwidth(),getheight());

g.setcolor(color);

g.drawstring(message,getwidth()/2,getheight()/2,graphics.hcenter|graphics.baseline);

}

}

在motorola a780和sonyericsson k700的模拟器上运行testmidlet,界面如下所示。我们通过一套代码维护了多套应用程序。选择项目,build all project configuration,可以在项目的dist目录生成多套midlet套件。由此可见,预处理代码功能的确是解决设备分裂问题的利器。

使用netbeans ide 5.0解决java me开发中的设备分裂问题(图三)

使用netbeans ide 5.0解决java me开发中的设备分裂问题(图四)

 
 
上一篇: 基于binary heap的a*算法    下一篇: "package中的javac,java用法" && "制作可执行jar文件&qu
  相关文档
2005年4月8日--正式开始我的java学习 11-17
浅析Eclipse建模框架(EMF)及其动态能力 03-25
jsp中在内存中生成的图片显示到页面中 11-17
两步学会java socket编程 11-17
java中更新xml文档的常用方法 11-16
新手宝典 j2ee专家起步图解 11-17
j2me mobile 3d入门教程系列文章之二 11-17
在solairs上运行linux上的二进制文件 11-17
hibernate构架应用中常用保存方式区别 11-16
对InputStream和OutputStream的理解 03-25
java之23种模式一点就通 11-17
管理复杂应用性能管理实用方法(2) 11-17
实现目录删除,取得目录大小及深度 11-17
java applet动画设计 11-17
基于oo模版技术的文档web输出新法 11-17
struts‘stiles使用入门完全攻略 11-17
用j2se1.5建立多任务的java应用程序2 11-16
定制xdoclet标签自动生成框架配置 11-17
java命令行简介 11-16
nutch在windows中安装之细解 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息