j2me框架教程(1)
2007-08-29 16:14
211 查看
网上针对J2ME开发的框架很少,以前曾分析过ZKMOB,觉得这个框架不错,感兴趣的话,你可以到SOURCE FORGE上下载,ZKMOB工作原理是通过连接服务器,然后请求某个地址,等服务器返回XML格式的文件,再分析这个文件信息并显示其内容,这个XML格式的文件既是数据的载体,同时还能控制界面的显示,这个思路跟我接下来要介绍的一套J2ME框架很类似。
在实际开发中,我们可能在不同的项目中实现了很多的功能,比如浏览新闻功能,拍照功能,播放音频功能等等, 那么我们经后在开发其它项目的时候,有没有可能复用这些功能呢,大家都知道,面向对象编程一个优势就是复用,复用的好处很明显,它可以增加代码的利用率,减少你测试的时间,同时也可以增强软件的稳定性, JAVA语言给我们提供了这种可能。而将各个功能模块化,正是这套框架的特色。
接下来,介绍一下如何在该框架下编写一个功能模块,并将该模块加载到应用程序中。
我假设你有过J2ME的开发经验,而且对ECLIPSE比较了解,因为我都是用ECLIPSE开发,具体的设置细节就不讲了。我的开发环境是ECLIPSE 3.2,WTK 2.2 ,JDK 1.5。
一 下面介绍开发功能模块的具体步骤:
1 首先,新建一个J2ME工程,工程名为EXAMPLE
2 在主工程下新建两个源文件夹,一个src用来放代码,一个res用来放资源
3 导入开发包AppFrame.jar,这一步可能问题比较多,我以图片说明
1)点击Example,右键,选择 构建路径-》配置构建路径-》库
2) 添加变量
如果变量没建过,可以在上面点“配置变量”
3)新建一个变量
4) 点击文件夹,找到你放AppFrame.jar的目录,名称为THIRDLIB
5)回到第三步的界面,此时应有THIRDLIB这项,双击THIRDLIB,点变量,选择AppFrame.jar
6) 点击排序和导出,如果你的工程需要某些包的话,必须选上。千万不要将J2ME library选上,因为真机上已经有这个包了
这样写,应该够详细了吧,如果工程报错,基本就是这里设置出了问题,再回来检查吧。
4 在src下新建一个包,包名为com.example.test
5 在该包下新建一个类,Example ,这个类必须从Application继承,如下表:
(代码的具体含义,以后再解释)
6 在res下新建一个目录example,以后这个模块的资源就放在这个目录下
7 在目录example下,建一个XML文件,命名为index.xml
(具体含义,以后再解释)
7 在目录example下,建一个图片,命名为ex1.png
二 下面介绍如何建个主工程来包含以上的功能模块
1 新建个工程,工程名Application
2 在主工程下新建两个源文件夹,一个src用来放代码,一个res用来放资源
3 点击Application,右键,构建路径-》配置构建路径-》项目-》添加-》Example
然后选择排序和导出,将Example这个复选框选上。这样的话,就将测试模块包含到这个主工程中。
4 导入开发包AppFrame.jar,同功能模块
5 在src下新建一个包,包名为com.frame.soft
6 在该包下新建一个类,MainMidlet ,这个类必须从AppMIDlet继承,如下表:
(具体含义,以后再解释)
最后显示效果:
点击图标,程序就会分析该模块下资源包里的index.xml文件,然后显示
点击Type:Content项
如果将以下代码注释掉:
显示效果如下:
说明你刚才的功能模块已经被去掉了。
这样的话,你只要将你现有的功能给模块化,那么今后写程序,对于已经实现了的模块,只要添加到主工程里就行了,简单吧。
FAQ:
1 导入的时候错误,出现红叉叉
我碰到过两种情况:
1) 没有为工程指定一个模拟器,就是没有引用MIDP包
2) 配置构建路径出错
2 调试的时候,一闪而过
Window->Preferences->Java->Debug
去掉Suspend execution on uncaught exceptions的对勾
去掉Suspend execution on compilation errors的对勾
底部Debugger timeout (ms)的数值改成15000
Launch timeout (ms)的数值改成20000
以上只是简单的介绍,对于复杂的应用,我们接下来再讲。
图片显示不出来,上传文件也出错,晕了。
在实际开发中,我们可能在不同的项目中实现了很多的功能,比如浏览新闻功能,拍照功能,播放音频功能等等, 那么我们经后在开发其它项目的时候,有没有可能复用这些功能呢,大家都知道,面向对象编程一个优势就是复用,复用的好处很明显,它可以增加代码的利用率,减少你测试的时间,同时也可以增强软件的稳定性, JAVA语言给我们提供了这种可能。而将各个功能模块化,正是这套框架的特色。
接下来,介绍一下如何在该框架下编写一个功能模块,并将该模块加载到应用程序中。
我假设你有过J2ME的开发经验,而且对ECLIPSE比较了解,因为我都是用ECLIPSE开发,具体的设置细节就不讲了。我的开发环境是ECLIPSE 3.2,WTK 2.2 ,JDK 1.5。
一 下面介绍开发功能模块的具体步骤:
1 首先,新建一个J2ME工程,工程名为EXAMPLE
2 在主工程下新建两个源文件夹,一个src用来放代码,一个res用来放资源
3 导入开发包AppFrame.jar,这一步可能问题比较多,我以图片说明
1)点击Example,右键,选择 构建路径-》配置构建路径-》库
2) 添加变量
如果变量没建过,可以在上面点“配置变量”
3)新建一个变量
4) 点击文件夹,找到你放AppFrame.jar的目录,名称为THIRDLIB
5)回到第三步的界面,此时应有THIRDLIB这项,双击THIRDLIB,点变量,选择AppFrame.jar
6) 点击排序和导出,如果你的工程需要某些包的话,必须选上。千万不要将J2ME library选上,因为真机上已经有这个包了
这样写,应该够详细了吧,如果工程报错,基本就是这里设置出了问题,再回来检查吧。
4 在src下新建一个包,包名为com.example.test
5 在该包下新建一个类,Example ,这个类必须从Application继承,如下表:
(代码的具体含义,以后再解释)
package com.example.test; import javax.microedition.lcdui.Image; import com.frame.application.Application; import com.frame.application.DisplayFactory; import com.frame.util.ResUtil; import com.frame.util.XmlUtil; import com.frame.display.DisplayManager; public class Example extends Application { public Example() { super(); } public String getName() { return "j2me框架演示程序1"; } public Image getAppIcon() { ResUtil.baseDir = "/example/"; return ResUtil.getStaticImage("ex1.png"); } public void doApplication() { XmlUtil.initXmlFile("/example/Index.xml"); DisplayManager.getCurrent().setDisplay( DisplayFactory.getDisplayable("Index")); } public void register() { } public void initialize(boolean isFirst) { } public void finalizeApp() { } public String getHelpString() { return "j2me框架演示程序 /n Author:feiya Date:2007-8-28"; } public void doSearch() { } public boolean supportSearch() { return false; } public void doSysManager() { } public boolean supportSysManager() { return false; } public boolean supportHelp() { return true; } public boolean supportParserXml() { return false; } } |
7 在目录example下,建一个XML文件,命名为index.xml
(具体含义,以后再解释)
<XmlFile> <Html Name="Index" AutoSave="1" AutoCache=""> <Body> <Item DisplayName="Type:Content" File="typeContent" Type="Task"/> <Item Type="Hr"/> <Item DisplayName="Type:Hr" File="typeHr" Type="Task"/> <Item Type="Hr"/> <Item DisplayName="Type:InputBox" File="typeInputBox" Type="Task"/> <Item Type="Hr"/> <Item DisplayName="返回" Type="Back"/> </Body> </Html> <Html Name="typeContent" AutoSave="0" AutoCache="1"> <Body> <Item Type="Content" Align="left">左对齐</Item> <Item Type="Hr"/> <Item Type="Content" Align="center">居中对齐</Item> <Item Type="Hr"/> <Item Type="Content" Align="right">左对齐</Item> <Item Type="Hr"/> <Item Type="Content" Color="0000FF">字体颜色:蓝色</Item> <Item Type="Hr"/> <Item Type="Content" UnSelectBgColor="00000F" >未选中时的背景色:</Item> <Item Type="Hr"/> <Item Type="Content" TopMargin="10">上边距:10</Item> <Item Type="Hr"/> <Item Type="Content" BottomMargin="10">下边距:10</Item> <Item Type="Hr"/> <Item Type="Content" LeftMargin="10">左边距:10</Item> <Item Type="Hr"/> <Item Type="Content" RightMargin="10">右边距:10</Item> <Item Type="Hr"/> <Item DisplayName="返回" Type="Back"/> </Body> </Html> </XmlFile> |
二 下面介绍如何建个主工程来包含以上的功能模块
1 新建个工程,工程名Application
2 在主工程下新建两个源文件夹,一个src用来放代码,一个res用来放资源
3 点击Application,右键,构建路径-》配置构建路径-》项目-》添加-》Example
然后选择排序和导出,将Example这个复选框选上。这样的话,就将测试模块包含到这个主工程中。
4 导入开发包AppFrame.jar,同功能模块
5 在src下新建一个包,包名为com.frame.soft
6 在该包下新建一个类,MainMidlet ,这个类必须从AppMIDlet继承,如下表:
(具体含义,以后再解释)
public class MainMidlet extends AppMIDlet { public MainMidlet() { super(); try { Class c = Class.forName("com.example.test.Example"); addApplication(10, c); } catch (Exception ex) { } } |
//Class c = Class.forName("com.example.test.Example"); //addApplication(10, c); |
这样的话,你只要将你现有的功能给模块化,那么今后写程序,对于已经实现了的模块,只要添加到主工程里就行了,简单吧。
FAQ:
1 导入的时候错误,出现红叉叉
我碰到过两种情况:
1) 没有为工程指定一个模拟器,就是没有引用MIDP包
2) 配置构建路径出错
2 调试的时候,一闪而过
Window->Preferences->Java->Debug
去掉Suspend execution on uncaught exceptions的对勾
去掉Suspend execution on compilation errors的对勾
底部Debugger timeout (ms)的数值改成15000
Launch timeout (ms)的数值改成20000
以上只是简单的介绍,对于复杂的应用,我们接下来再讲。
图片显示不出来,上传文件也出错,晕了。
相关文章推荐
- j2me框架教程(2)
- j2me框架教程(3)--xml文档详细说明
- j2me框架教程(1)--例子下载
- j2me框架教程(4)--登录页面的实现
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- [PHP]框架CodeIgniter中的表单教程
- EXTJS入门教程及其框架搭建
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- Spring+SpringMvc+Mybatis框架集成搭建教程二(依赖配置及框架整合)
- J2ME中文教程 4 MIDP低级UI的使用
- Ruby on Rails框架程序连接MongoDB的教程
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- SpringMVC 基础教程 框架分析
- GreenDao数据库框架 最精简使用教程 并对其进行简单封装
- 一个使用监听器模式实现的J2ME网络编程框架,包括一个简单的登录功能实现(含源代码)
- 开发iOS即时通讯工具参考的一些开源、框架和教程
- play框架2.5.6教程——使用play控制台
- 迷你MVVM框架 avalonjs 入门教程
- Silverlight实例教程 - Navigation导航框架开篇
- [Python]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程