亲密接触Java手机程序设计(二):配置手机程序开发环境――WTK

亲密接触java手机程序设计(二)

配置手机程序开发环境――wtk

开发基于j2me平台的手机应用程序第一步就是要选择一个好的开发工具。手机程序开发与pc程序开发有很大的不同点,pc程序可以直接在pc上开发并运行测试,而在手机上没有也肯定不可能提供应用程序开发集成环境和测试工具。通常情况下,我们都是先利用pc机上java开发工具编写源代码并使用java编译器和j2me库一起生成j2me手机程序,再将该程序上传到手机上运行。现在,大部分手机厂商都提供其生产的不同机型的模拟器,此模拟器可以在pc上直接运行,真实模拟该型号手机上提供的j2me运行环境。如果安装了手机模拟器,就可以将编译好的手机程序直接在pc的模拟器上测试,等到测试运行正常后再上传到实机上运行。

虽然当前有很多工具都可以开发j2me手机程序,其中不乏有功能强大的jbuilder集成开发环境,但是对于初学者来说,使用ultraedit/notepad+wtk作为手机程序的开发工具会更好一点。ultraedit和notepad都是pc上常用的编辑软件,我们可以使用它们来编写手机程序的代码,然后使用sun提供的wtk(j2me无线工具包)对源代码进行编译、模拟运行以及上传实机。下面我们将重点介绍wtk的安装和使用。

1.安装wtk

wtk,全称j2me wireless toolkit,它是由sun公司开发用于支持开发那些可在与移动信息设备框架(midp)兼容的设备(如手机、双向呼机和pda)上运行的java应用程序。当前wtk的高版本为2.0版,它支持最新的midp2.0。您可以到sun网站下载安装wtk,下面详细介绍下载安装wtk过程。

(1)、登录sun j2me wtk中文版下载网页:

http://java.sun.com/products/j2mewtoolkit/zh_download-2_0.html

(2)、中文版是通过本地化补丁实现的,首先需要下载wtk2.0英文版本,如图三所示,在列表框中选择您的pc安装的操作系统类型(通常pc使用windows系统居多,本文仅以windows平台为例,其它平台可参照。),再点击第一个“继续”按钮。

图一:下载wtk2.0页面部分图

(3)、如果您未处于登录状态的话,将提示您登录。如果您还未成为sun会员的话,可以马上注册会员。其登录过程同其它网站会员登录过程相似。

(4)、成功登录后,进入英文版文件下载页面,如图四所示,点击下载链接即可下载英文版文件j2me_wireless_toolkit-2_0-windows.exe,大小为9.89m。

图二:wtk2.0英文版文件下载页面部分图

(4)、运行j2me_wireless_toolkit-2_0-windows.exe安装程序,当系统提示您提供安装目录时,请确保该安装目录的完全合法的路径中不包含任何空格。这将帮助您在今后使用工具包时避免可能出现的问题。

(5)、安装完wtk2.0英文版后,回到图三页面,点击第二个“继续”按钮下载中文补丁文件。进入中文补丁文件下载页面,如图五所示,点击下载链接即可下载文件j2me_wireless_toolkit-2_0-zh.zip,大小为4.07m。

图三:wtk2.0中文补丁文件下载页面部分图

(6)、将j2me_wireless_toolkit-2_0-zh.zip文件解压缩至wtk2.0英文版的安装目录下(缺省安装目录为c:\wtk2.0),确保文件是带着目录路径解压的。

(7)、wtk2.0中文版本安装成功。

2.使用wtk

如果安装wtk成功的话,在开始菜单上选择“程序->j2me wireless toolkit2.0->ktoolbar”,启动wtk工具程序,主界面如图六所示。

图四:wtk运行界面

wtk的主要功能包括:新建项目、打开项目、生成项目、运行项目等。

● 新建项目

在编写手机程序之前,都需要使用wtk创建一个新的项目。新建项目的主要步骤:

(1)、点击工具栏“新建项目”按钮,弹出“新建项目”对话框,如图七所示。

图五:新建项目对话框

(2)、在“项目名字”栏中输入项目名称,如myprogram;在“midlet类名”栏中输入您的手机程序的主类名,如mymidlet,在后面章节将会介绍到每个j2me手机程序都必须有一个midlet类的子类。

(3)、点击“产生项目”按钮,弹出“项目配置”对话框,在此对话框中可以对项目的相关配置进行修改,一般情况下都不需要修改。

(4)、点击“确定”按钮,新建项目完成。请注意,此时在主窗口中列出项目java源文件的路径、资源文件路径和库文件的路径的信息。由于wtk生成程序时,必须要求项目的路径结构一定要规范化,否则不能生成运行程序。

图八展示了myprogram项目生成后,在wtk目录下的路径结构图。wtk将在其子目录apps下为每个项目创建一个同名子目录,并在此子目录下创建bin、src、res、lib四个目录,其中bin目录用于存放目标程序,当使用生成工具产生了可运行的程序将放在此处,一般有*.jar和*.jad文件,其具体意义将在后面的章节详细说明;src目录用于存放源代码;res目录用于存放资源文件;lib目录用于存放程序调用的辅助库文件。

图六:wtk项目路径图

●打开项目

打开项目是将已存在的项目打开,作为wtk的当前工作项目。通过点击“打开项目”按钮,弹出“打开项目”对话框,您可以从项目列表中选择打开项目。请注意,在此项目列表中仅能选择apps目录下的项目,如果您的项目不在此项目下,将不能使用wtk打开项目。

●生成项目

当您新建项目并编写好源代码或者打开旧项目后,可以通过点击工具栏上的“生成项目”按钮,wtk将自动调用java编译器为项目程序进行编译。如果程序代码有语法错误将在主窗口中产生错误提示,否则为项目生成*.jar和*.jad目标文件。

●运行项目

成功生成项目目标文件后,可点击工具栏上的“运行项目”按钮,wtk将启动模拟器,并加载项目bin目录下的*.jar和*jad文件。模拟器界面同相应型号的外观相似,您可以通过模拟器上的键盘操作项目程序。图九展示pushpuzzle游戏在模拟器上运行结果。

图七:pushpuzzle游戏在模拟器上运行结果图


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Image; import javax.microedition.lcdui.ImageItem; import javax.microedition.lcdui.Item; import javax.microedition.lcdui.TextField; public class PhoneAdd extends Form { private UIController controller; private Command BACK_COMMAND; private Command SAVE_COMMAND; private TextField nameField; private TextField phoneField; private TextField QQField; private TextField sexField; private TextField ageField; // private ImageItem iconQQ; // private Image icon; public PhoneAdd(String title, UIController control) { super(title); controller = control; this.setCommandListener(new PhoneAddListener()); BACK_COMMAND = new Command("返回", Command.BACK, 1); SAVE_COMMAND = new Command("确认", Command.OK, 2); this.addCommand(BACK_COMMAND); this.addCommand(SAVE_COMMAND); /* try{ icon=Image.createImage("/icon/7.png"); }catch(java.io.IOException e){ icon=null; System.out.println("图片导入异常"); } */ nameField = new TextField("名字", "", 16, TextField.ANY); phoneField = new TextField("电话", "", 16, TextField.PHONENUMBER); QQField = new TextField("QQ", "", 11, TextField.NUMERIC); sexField = new TextField("性别", "", 2, TextField.ANY); ageField = new TextField("年龄","",3,TextField.NUMERIC); // iconQQ=new ImageItem("",icon,Item.LAYOUT_LEFT,"图片无法显示"); this.append(nameField); this.append(phoneField); this.append(sexField); // this.append(iconQQ); this.append(QQField); this.append(ageField); } public void clear() { nameField.setString(""); phoneField.setString(""); sexField.setString(""); QQField.setString(""); ageField.setString(""); } private class PhoneAddListener implements CommandListener { public void commandAction(Command command, Displayable disp) { if (command == BACK_COMMAND) { controller.handleEvent(UIController.EventID.EVENT_VIEW_BACK, null); } else if (command == SAVE_COMMAND) { String name = nameField.getString(); String phone = phoneField.getString(); String QQ = QQField.getString(); String sex = sexField.getString(); String age= ageField.getString(); if ((name == null || name.equals("")) || (phone == null || phone.equals(""))) { return; } Object[] args = { name, phone, QQ, sex ,age}; controller.handleEvent(UIController.EventID.EVENT_NEW_SAVE, args); } } } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值