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(){}//启动或重新启动MIDletpublic void pauseApp(){}//暂停Midletpublic 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 ,将我们要显示的画面显示到屏幕上。