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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值