服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

精通j2me中的hello world 程序


  初学java的时候一般都写过如下的helloworld程序,今天我准备详细讲述一下j2me中的helloworld。无论你是j2me开发高手还是新手都应该读读这篇文章,我想它会对你有所帮助!
  
  在javax.microedition.midlet包中定义了一个非常重要的类midlet,所有j2me的应用程序都必须扩展这个类,只有这样才可以使得应用管理软件(application management software)管理midlet,包括下载、安装和删除。在被ams管理的同时,midlet可以和应用管理软件通信通知应用管理软件自己状态的变化,通常是通过方法notifydestroyed()和notifypaused()实现的。最后midlet还可以通过getappproperty(string name)读取在jad文件中定义的属性值。
  
  midlet有三个状态,分别是pause,active和destroyed。在启动一个midlet的时候,应用管理软件会首先创建一个midlet实例并使得他处于pause状态,当startapp()方法被调用的时候midlet进入active状态,也就是我们平时所说的运行状态。在active状态调用destroyapp(boolean unconditional)或者pauseapp()方法可以使得midlet进入destroyed或者pause状态。值得一提的是destroyapp(boolean unconditional)方法,很多开发者对unconditional参数不是很理解,事实上,当destroyapp()方法被调用的时候,ams通知midlet进入destroyed状态。在destroyed状态的midlet必须释放了所有的资源,并且保存了数据。如果unconditional为false的时候,midlet可以在接到通知后抛出midletstatechangeexception而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。
  
  下面是根据上述问题我编写的一个j2me中的helloworld程序,他比j2se中的helloworld要复杂一点。新手可以仔细看看。
  package com.j2medev.mingjava;
  
  import javax.microedition.midlet.midlet;
  import javax.microedition.midlet.midletstatechangeexception;
  import javax.microedition.lcdui.*;
  
  public class helloworld extends midlet implements commandlistener
  {
    private display display;
    private form mainform;
    private stringitem stringitem;
    private command exitcommand = new command("exit", command.exit, 1);
  
    public static final string web_site = "web_site";
  
    protected void startapp() throws midletstatechangeexception
    {
  
      initmidlet();
      display.setcurrent(mainform);
  
    }
  
    private void initmidlet()
    {
      display = display.getdisplay(this);
      mainform = new form("hello world");
      stringitem = new stringitem(null, null);
      string text = getappproperty(web_site);
      stringitem.settext(text);
      mainform.append(stringitem);
      mainform.addcommand(exitcommand);
      mainform.setcommandlistener(this);
    }
  
    protected void pauseapp()
    {
  
    }
  
    protected void destroyapp(boolean arg0) throws midletstatechangeexception
    {
      system.out.println("exit the application");
    }
  
    public void commandaction(command cmd, displayable display)
    {
      if (cmd == exitcommand)
      {
        try
        {
          destroyapp(false);
          notifydestroyed();
        } catch (midletstatechangeexception e)
        {
          e.printstacktrace();
        }
      }
    }
  
  }
  
  helloworldmidlet.jad文件内容如下,如果你还不是很清楚jad文件请参考midp中的属性问题。尤其是当你在安装midlet到手机上的时候。

扫描关注微信公众号