实验:J2ME体系介绍和环境配置
一、 实验目的
使学生了解J2ME的体系框架,及J2ME WTK开发无线应用的机制,完成Eclipse
软件进行开发的J2ME应用开发环境的配置,编写第一个MIDlet
程序。
二、 实验工具
JDK ;J2ME Wireless Tookit;Eclipse,EclipseME
三、 实验内容
1、安装 JDK1.6。
2、安装 J2ME Wireless Tookit。安装过程中需要绑定JDK
(1)在c:\WTK25下面,了解WTK的Apps 、Bin 、Docs 、Lib等关键目录,及C:\WTK25\docs\api\midp\index.html 是midp索引
文档的使用,在文档中了解WTK下有限连接设备配置表(CLDC)和移动信息设备描述(MIDP)所属的类包。
(2)启动Wireless Toolkit 2.5, 使用KToolbar部署应用
第一步:创建工程
第二步:在记事本中编辑HelloWorldMIDlet.java文件
第三步:在Wireless Toolkit 2.5中编译源文件,并运行,查看运行结果
第四步:在菜单"项目"->"包"->产生包。查看项目所在目录下的bin目录下生成 jar文件(
压缩文件)和jad文件(描述文件),直接双击jad文件进行运行,查看运行结果。
3、配置EclipseMe运行环境
(1)启动Eclipse
(2)在Eclipse3.2.1中,绑定EclipseMe ,重启Eclipse
在"help"菜单-> software Updates -> Find and Install?Search for new features to install ->New Archived Site (压缩包方式) ,重启Eclipse
(3)在Eclipse中,绑定WTK
"Window"菜单-> Preference -> J2ME-> Device Management-> import Devices->选择WTK安装目录(c:\WTK2.5.2)-> refresh ->导入4种默认的模拟设备
4、在Eclipse中创建J2ME工程及源文件。
创建J2ME工程: File->New->Other,选择J2ME Midlet Suite (套件) 。
创建J2ME源文件:File->New->Other,选择J2ME Midlet,进行源文件的编辑。
5、运行:选中Midlet文件,鼠标右键,执行Emulated J2ME Midlet。
6、打包:
在项目的名称上右击,选择J2ME下的Create Package进行打包,在工程目录下的deployed文件夹下,出现jad文件和jar文件。
7、尝试安装手机不同模拟器,进行模拟运行。
四、 源程序清单
HelloWorldMIDlet.java
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class HelloWorldMIDlet extends MIDlet implements CommandListener {
private Command exitCommand;
private Display display;
public HelloWorldMIDlet() {
}
protected void startApp() throws MIDletStateChangeException {
display=Display.getDisplay(this);
exitCommand=new Command("离开",Command.SCREEN,2);
TextBox tbx=new TextBox("一个范例","HelloWorldMIDlet",256,0);
tbx.addCommand(exitCommand);
tbx.setCommandListener(this);
display.setCurrent(tbx);
}
public void commandAction(Command c, Displayable arg1) {
if (c==exitCommand){
notifyDestroyed();
}
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}
protected void pauseApp() {
}
}