一 功能模块代码说明
1
Example
类
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;
}
}
|
Application
是个抽象类,它定义几个重要的抽象方法,比如
doApplication()
,
register()
,
initialize(
boolean
isFirst)
,我们的子类可以通过重写这些方法来实现功能模块的业务逻辑。
下面详细介绍各个方法的作用:
1
)
getName()
返回这个功能模块的名称
2
)
getAppIcon()
返回一个图标。当这个功能模块加入到主程序后,会在首页面显示这个图标。
3
)
doApplication()
当这个功能模块加入到主程序后,点击该模块图标会调用这个方法。
4
)
register()
将在这个功能模块中定义的
XML TYPE
类型注册到框架中。
5
)
initialize(boolean isFirst)
模块的初始化工作
,
比如读取资源文件等。
isFirst
为
TRUE
时,表示该模块第一次运行。
6
)
finalizeApp()
程序退出前执行。
其他几个方法,等以后用到的时候再说。
二 功能模块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
>
|
这个文件,首先它必须符合XML规范,其次节点的定义要符合框架的规范,关于这个规范,接下来,会详细的说明
在这个例子文档中,我只举了三个TYPE类型:
1
Type="Content" 它的作用就是在手机屏幕上显示文本,我们可以通过属性对它的表现形式进行控制。
2
Type="Hr" 表示一条横线,这里用来分隔各个项。
3
Type="Back" 表示返回上一个界面。
三 主程序代码说明
MainMidlet
类
public
class
MainMidlet
extends
AppMIDlet {
public
MainMidlet() {
super
();
try
{
Class c = Class.forName(
"com.example.test.Example"
);
addApplication(10, c);
}
catch
(Exception ex) {
}
}
|
主程序的写法是最简单的,主要是注意两点:
1)
forName
()方法的值必须是从
Application
继承的子类的全路径
2)
addApplication()
方法,前面的数值表示你这个模块在框架中的顺序,越小的话,就排在越前面。