在上次j2me视频中,介绍了如何安装开发j2me需要的软件,还有进行了相关的环境配置。
现在我们来编写第一个简单的HelloWorld程序。

首先要知道一个j2me程序,它是有生命周期。
当你运行一个程序它就开始了,关闭程序,那么生命周期就随之结束,释放占用
手机的资源。
j2me程序的生命周期包括了3个阶段:Paused, Active, Destroyed
首先我们来 演示下如何创建一个简单的程序,
1. 打开 Wireless Toolkit 2.5.1
2. 点击 New Project 创建一个新的项目
3. 填写 项目 名字 我这里填写 HelloWorld
类名字 也是 HelloWorld
然后点击 Create Project
然后选择一些 参数就可以了, Target Platform 选择 MIDP 1.0
其他就不用管了。最后 点击 Ok, 这样我们就创建好一个项目了。
4. 那么我们如何 在项目写入我们的代码呢 ? 代码文件在什么地方 ?
不急,看看创建项目的信息。
Place Java source files in "C:\WTK2.5.1\apps\HelloWorld\src"
看见了吧, 我们的要编写程序源代码文件就在这个文件夹里面
5. 我们在这个文件夹里 创建一个HelloWorld.java文件
就可以在里面编写程序了
下面通过一个简单的程序来理解:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet
{
public HelloWorld()
{
}
public void startApp() throws MIDletStateChangeException
{
}
public void pauseApp()
{}
public void destroyApp( boolean unconditional )
{}
}
这个程序 可以说是最简单的,下面分析一下:
startApp() 程序开始执行就会执行该函数, MIDletStateChangeException要抛出这个异常的原因是,大家都知道运行程序 就要占用手机资源,例如内存。
如果内存不够,那么就执行不了,也就会抛出异常。
pauseApp() 当程序运行时,需要暂停就会执行。可以这样理解,例如里正在用手机
玩游戏,突然有人给里打电话来,那么就可能要暂停游戏了。
destroyApp 这个函数就 当里结束程序就会运行的。释放一些资源。
好了,那么我们到底要在这些函数里干些什么具体事情呢 ?
---------
首先看 构造函数 HelloWorld() ,一般我们创建一些实例,
这里StringItem 其实就是在屏幕上 显示一条信息,等下演示就可以看到了。
----------
startApp() 函数里我们这样写 display1.setCurrent( showForm );
display1.setCurrent( showForm ); // 当程序开始运行就要显示showForm里东西出来
下面我们编译一下 看看有没有错误
先保存好 源代码, 然后 点击 Build
Build complete 没有显示 错误信息,没问题。
下面 运行一下。点击 Run
看到 HelloWorld 项目了, 不过这个手机 有点大 ,我们换另外一个皮肤上去
先关闭它, 在 Device 选择 MediaControlSkin 再次运行 Run
点击 手机中间 按钮 进去程序
是吧 手机显示出来了
好了,就演示到这里, j2me 还有很多空间 一些文本框 一些按钮 图片显示
选择按钮 下拉框 等等 我们以后会慢慢 学习到
如果大家对视频有什么建议或者疑问 可以上 www.17rumen.com 进行留言 谢谢!
视频下载演示代码:
02月 15th, 2009 at 21:06:47 #小东东
你好,我是一个手机J2ME程序的刚接触者,看了你的教程,觉得十分的好,谢谢作者无私的劳动,无私的心血。说不出什么只有几个字“万分谢谢!”希望能继续看到楼主的第三课出来。再说一句,你的教程深入浅出,太好了!
[回复]
03月 29th, 2009 at 13:22:01 #心远
您好,我运行的实例时候出现错误
Uncaught exception java/lang/NoClassDefFoundError: Helloworld.
是怎么回事?请教,谢谢!
[回复]
adminreply on 2009-03-29 19:35:48:
你要先进行编译。
还有注意大小写问题Helloworld, 好像是大写的吧HelloWorld
04月 24th, 2009 at 21:39:25 #小可
您好,我Build时没问题,按Run时可以显示HelloWorld,但是点击中间按纽时不能显示“Hi,这是我的第一个j2me入门程序”的字样,出现这样的信息:
Running with storage root DefaultColorPhone
Running with locale: Chinese_People's Republic of China.936
Running in the identified_third_party security domain
Uncaught exception java/lang/NoClassDefFoundError: Helloworld.
请问是什么原因?
[回复]
adminreply on 2009-04-25 15:36:01:
注意大小写问题Helloworld, 好像是大写的吧HelloWorld
注意类名的名字。
04月 25th, 2009 at 18:03:58 #小可
大小写没问题,我JDK装的是1.6.0版的,不知道是不是不支持WTK2_5_1,现在装了WTK2_5_2,现在没问题了,可以显示了!
[回复]
04月 26th, 2009 at 08:23:58 #admin
汗。。。不兼容啊,无语!!
[回复]
05月 4th, 2009 at 10:03:11 #cai5681
老师:请教为什么写好了代码(没错)总是在"C:\Documents and Settings\cai\j2mewtk\2.5.2\apps\HelloWorld\src"里,而不是在"C:\WTK2.5.1\apps\HelloWorld\src"里生成,运行就显示没有源,且新建java文件总是生成文本文件(java装后测试没错)
[回复]
adminreply on 2009-05-07 18:45:57:
用工具来开发的吗? 视频使用记事本新建,你电脑设置显示后缀文件名,就可以直接修改成文件类型了。
05月 8th, 2009 at 23:27:35 #huwenhui
老师,运行我的这个就是运行不了
Build成功。
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet
{
private Display display1;
private Form showForm;
public HelloWorld()
{
display1=Display.getDisplay(this);
showForm=new Form("HelloWorld");
StringItem strItem=new StringItem("Hi","这是我的第一个程序!");
showForm.append(strItem);
}
public void startApp() throws MIDletStateChangeException
{
display1.setCurrent(showForm);
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
}
[回复]
adminreply on 2009-05-10 10:02:40:
你试一下 视频打包中的 源代码吧,那个是可以运行的。。
05月 8th, 2009 at 23:41:12 #huwenhui
难道是传说中的不兼容?
我的sdk是5
wtk2.5.2_01
[回复]
05月 8th, 2009 at 23:44:53 #huwenhui
说错了是jdk版本:jdk-6u13-windows-i586-p.exe
[回复]
adminreply on 2009-05-10 10:03:06:
也许吧,这个没有用过
08月 20th, 2009 at 11:55:41 #郭
我这写了第一个HelloWorld是程序,可是编译能成功,运行不成功,点击手机上的中间的那个大按钮时屏幕上出现了异常,是这样的:
HelloWorld,HelloWorld
Exception:
java.lang.ClassNotFoundExceptio:
HelloWorld
Wireless Toolkit 2.5.1上显示的错误时这样的:
Unable to create MIDlet HelloWorld
java.lang.ClassNotFoundException: HelloWorld
at com.sun.midp.midlet.MIDletState.createMIDlet(+29)
at com.sun.midp.midlet.Selector.run(+22)
环境变量我也按照教程上配置了,可是不知道问什么成这样了,我的jdk是jdk-1_5_0_11-windows-i586-p.exe
跟视频上说的不一样,这影响吗?
如果看见了,请务必回复,谢谢作者啦。。。
[回复]
adminreply on 2009-08-24 18:52:15:
代码和视频的一样吗 ?
有可能文件放错了位置。。。
10月 21st, 2009 at 09:18:38 #匿名
C:\WTK25\apps\HelloWorld\src\HelloWorld.java:12: 找不到符号
符号: 构造函数 StringItem(java.lang.String)
位置: 类 javax.microedition.lcdui.StringItem
StringItem strItem=new StringItem("This is my first j2me program");
^
1 错误
com.sun.kvem.ktools.ExecutionException
Build failed
这个是怎么回事啊
[回复]
adminreply on 2009-10-22 16:10:40:
你是在什么地方编译的 ? 有没有安装WTK J2ME手机模拟器(WTK2.5.1) ?
如果第一次编译过程的话,可以下载视频观看。