网络推荐

推荐给好友 上一篇 | 下一篇

精通J2ME中的Hello World


声明
  • 声明: 1、任何网站转载本站点内容时需注明来自JAVA-CN.COM,否则我们有权将根据《互联网著作权行政保护办法》追究其相应法律责任; 2、JAVA中文站社区刊登此文只为传递信息,并不表示赞同或者反对.
初学java的时候一般都写过如下的HelloWorld程序,今天我准备详细讲述一下J2ME中的HelloWorld。无论你是J2ME开发高手还是新手都应该读读这篇文章,我想它会对你有所帮助!JAVA中文站社区门户ob;r!Sg$@#v
JAVA中文站社区门户3B*n3K5r]!R
      在javax.microedition.midlet包中定义了一个非常重要的类MIDlet,所有J2ME的应用程序都必须扩展这个类,只有这样才可以使得应用管理软件(Application Management Software)管理MIDlet,包括下载、安装和删除。在被AMS管理的同时,MIDlet可以和应用管理软件通信通知应用管理软件自己状态的变化,通常是通过方法notifyDestroyed()和notifyPaused()实现的。最后MIDlet还可以通过getAppProperty(String name)读取在jad文件中定义的属性值。JAVA中文站社区门户 r2g"O&?3`6I9j5t7x
JAVA中文站社区门户 fWr,O)\7I
      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状态。JAVA中文站社区门户5`~9v%~vh0X
JAVA中文站社区门户lV$H5T1Q B9Ga.q9s
      下面是根据上述问题我编写的一个J2ME中的HelloWorld程序,他比j2se中的helloworld要复杂一点。新手可以仔细看看。
5S``9Im ]+_package com.j2medev.mingjava;JAVA中文站社区门户Lv.\m.T&Q

'Jp5o \[import javax.microedition.midlet.MIDlet;
'IL$?%X5] Fzimport javax.microedition.midlet.MIDletStateChangeException;
L&DmSs ^6himport javax.microedition.lcdui.*;JAVA中文站社区门户 C#CI1p-}?
JAVA中文站社区门户UX H:r-S
public class HelloWorld extends MIDlet implements CommandListenerJAVA中文站社区门户C8c)xkD;A
{JAVA中文站社区门户r] a b0c
    private Display display;JAVA中文站社区门户ON GQ]0I2E^$a8Xd:M
    private Form mainForm;
/L~5a]-ZH \ b*? {    private StringItem stringItem;
j$g&@Os_    private Command exitCommand = new Command("Exit", Command.EXIT, 1);
P%]yp{j ZMU:@R
Oc){3sZ    public static final String WEB_SITE = "WEB_SITE";
?.Y/q'NOL
S%s;g;cI    protected void startApp() throws MIDletStateChangeException
YQ};V!`)C    {JAVA中文站社区门户tA9R8\2yFCW"]

q0EY(E y n        initMIDlet();JAVA中文站社区门户ACD*R.Z sN\
        display.setCurrent(mainForm);JAVA中文站社区门户4Q]"?.q#x&n(XoL

P^9K M,[    }JAVA中文站社区门户BrX~cF&Q

[.n8_^"x    private void initMIDlet()JAVA中文站社区门户0LOmL-X/n3l'F#p/{
    {JAVA中文站社区门户Y \5j.d/[g}
        display = Display.getDisplay(this);
)j x P`e1D"\6D        mainForm = new Form("Hello World");
u!F4u/bs%P0s"[.i n!Z        stringItem = new StringItem(null, null);
h*yH!Kf2vS"f        String text = getAppProperty(WEB_SITE);
C1_8_4W+Lo2lw        stringItem.setText(text);
d[ I#k%r7Gr^m        mainForm.append(stringItem);JAVA中文站社区门户}!S6ef;Bt
        mainForm.addCommand(exitCommand);JAVA中文站社区门户0z@XN _ [(~#@ O
        mainForm.setCommandListener(this);
kcld(iZ    }
-Vwp,p#G6pggv'j$_p JJAVA中文站社区门户Op4F9|f/s }}o\w
    protected void pauseApp()JAVA中文站社区门户Wq6w"]WA4y
    {
j IY z8h,p U/UJAVA中文站社区门户/A9\~:USxC
    }JAVA中文站社区门户VpZC-paFGt;U'p

D t\q]Ny ~    protected void destroyApp(boolean arg0) throws MIDletStateChangeException
E7d_6K%\4C%T    {
6pX f1\{ uA8l        System.out.println("exit the application");
w,k/JE3mQ    }JAVA中文站社区门户+rYFo4o8f%[@1|
JAVA中文站社区门户$E!W(P{@q&h5V
    public void commandAction(Command cmd, Displayable display)
#RHy7N3VlIu    {
p'y C%~iD*t-kb;i        if (cmd == exitCommand)JAVA中文站社区门户 W*l Q,`@p{Ov
        {
t,h4Wa}'M%P.Q            try
*F7vs2w3}7C            {
b \)Z.b'TZ1j                destroyApp(false);
UUeyNG:J-~                notifyDestroyed();JAVA中文站社区门户IPT5p-y5n-XJv
            } catch (MIDletStateChangeException e)
b2HGBW?@1u            {JAVA中文站社区门户1l7X!Cc,~W f
                e.printStackTrace();JAVA中文站社区门户U1xE N sqw|k
            }JAVA中文站社区门户 ]wCs@s2rv
        }
3ul} k.S%^NT!U a    }
5S c5ac+~U_!uU FJAVA中文站社区门户.L3q6N,^"]a!X7j;}
}
P9@4X)Wa&f
{ [ZfY*a5[#B]HelloWorldMIDlet.jad文件内容如下,如果你还不是很清楚jad文件请参考MIDP中的属性问题。尤其是当你在安装MIDlet到手机上的时候。
-Hp4^0gA'Y
(m_7T9zH,e{"ODo%BS,@MIDlet-Jar-Size: 2128JAVA中文站社区门户C'~ E%K | fxQ
MIDlet-1: HelloWorld,/icon.png,com.j2medev.mingjava.HelloWorld
;M5NlMmKa NMIDlet-Jar-URL: HelloWorldMIDlet.jarJAVA中文站社区门户?'u3PI H@#L
MicroEdition-Configuration: CLDC-1.0
Rc Pi/k`&h8Wg3h8^?MIDlet-Version: 1.0.0JAVA中文站社区门户h e pXJ6_ i.g b
MIDlet-Name: HelloWorldMIDletJAVA中文站社区门户xh}a4N
MIDlet-Vendor: www.j2medev.comJAVA中文站社区门户5M&e \CZ.|q
MicroEdition-Profile: MIDP-1.0JAVA中文站社区门户C/LWOgEJ
WEB_SITE: www.j2medev.com

TAG: Hello World MIDlet
 

评分:0

我来说两句

seccode