初学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();
}
}
}
}
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器