版权申明:可以任意转载,请保留以下作者信息:
作者:Snail
原文地址:http://www.matrix.org.cn/resource/article/43/43832_J2ME.html

前奏 

前几天把eclipse中的j2me开发环境搭建好了。接下来就开始我的j2me学习之旅了~!

MIDlet 基本结构
   MIDlet是MIDP的基本执行单元。所有MIDlet必须继承自 javax.microedition.midlet.MIDlet类。该类定义了三个abstract方法 (startApp()、pauseApp()、destroyApp()),应用程序管理器就是通过上面这三个方法控制着MIDlet的生命周期。在编写MIDlet时必须要实现这三个方法。因此MIDlet的基本结构如下:

    import javax.microedition.midlet.*; 
      public class  自定义类名 extends MIDlet
      {
         public 自定义类名(){}//构造方法
         public void startApp(){}//启动或重新启动MIDlet
         public void pauseApp(){}//暂停Midlet
         public void destroyApp(boolean unconditional){}//销毁Midlet
      }


     当MIDlet被加载后,会首先调用MIDlet的无参构造方法进行初始化。如果没有构造方法 会自动调用缺省构造方法。如果只是定义了一个带有参数的构造方法 编译器就不会自动加载缺省构造方法。必要的话 需要另外写一个无参的 以保证正确初始化。
     仔细观察 基本结构,并没有发现我们熟悉的 public static void main(String[] args){}方法,这是MIDP规范规定的。如果Midlet中写了该方法,应用程序管理器将忽略它。还有Midlet 开始必须要import javax.microedition.midlet.*;

简单的MIDlet编写
     现在开始动手编写我们的第一个MIDlet。以HelloMidlet为例。
     打开eclipse3.0
     文件-->新建-->其他-->J2ME --> J2ME Midlet Suite -->键入项目名称 HelloMidlet-->选择开发平台 这里我选择 J2ME Wireless Toolkit 2.2 MIDP 2.0 Platform  .
     文件-->新建-->其他-->J2ME --> J2ME Midlet -->源文件夹项 已经自动填写了 HelloMidlet  我们只要在名称处 键入 HelloMidlet 即可,其他的保持缺省。
     接下来主要的工作就是代码的编写了。具体代码如下:

import javax.microedition.midlet.MIDlet; 
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;//界面类
/*
* 创建日期 2005-10-2
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/

/**
* @author Snail
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class HelloMidlet extends MIDlet {

private Display display;
         private Form form;
/**
*  
*/
public HelloMidlet() {
super();
// TODO 自动生成构造函数存根
display = Display.getDisplay(this);
form = new Form("HelloMidlet");
form.append("Welcom to J2ME World!");
}

/* (非 Javadoc)
* @see javax.microedition.midlet.MIDlet#startApp()
*/
protected void startApp() throws MIDletStateChangeException {
// TODO 自动生成方法存根
display.setCurrent(form);
}

/* (非 Javadoc)
* @see javax.microedition.midlet.MIDlet#pauseApp()
*/
protected void pauseApp() {
// TODO 自动生成方法存根

}

/* (非 Javadoc)
* @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
*/
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO 自动生成方法存根

}

}

代码其实很简单,主要工作就是通过Display 引用设置当前屏幕为form ,将我们要显示的画面显示到屏幕上