j2me框架教程(2)

 

一 功能模块代码说明
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类型注册到框架中。
5initialize(boolean isFirst) 模块的初始化工作,比如读取资源文件等。isFirstTRUE时,表示该模块第一次运行。
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

publicclass 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()方法,前面的数值表示你这个模块在框架中的顺序,越小的话,就排在越前面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值