,移动开发   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,移动开发
您的位置:软件 > 开发者网络 > 开发工具 > 移动开发 > 正文
Eclipse开发J2ME程序之仿真机发布
[文章信息]
作者:中国电子科技集团公司第二十二研究所青岛分所郎锐
时间:2005-04-12
出处:天极网
责任编辑:方舟
[文章导读]
本文将通过一个简单的J2ME程序"整蛊专家"的开发向读者介绍信息框的显示、命令按钮的添加
advertisement
专题教程宝典
【软件应用】
【办公软件】
【图形图像】
【网页制作】
【操作系统】
【网络安全】
【程序开发】
【日报周刊】
【多媒体教程】
· 天极软件应用多媒体教程
· 游戏开发新手入门讲座
· 多媒体系列教程:网页设计制作
· 豪杰超级解霸V9使用手册(下)
· 打造个性化的Windows操作系统
· 图解Photoshop CS2 新功能体验
· 编程中的“拿来主义” 第三方控件推荐
· JBuilder 2005 单元测试体验
· 豪杰超级解霸V9使用手册(上)
· 数码照片后期处理与创意设计
[正文]

1 2  下一页

  引言

  在上一篇文章介绍了HelloWorld程序的开发过程,虽然这是一个经典的程序但并不具备任何实质性的功能而且只是在模拟器中仿真运行。经过这么长时间的学习,本文中要向读者在这段时间的学习有所交代,最起码应当让读者能够开发出一个具备简单功能的能够在真机运行的J2ME手机应用程序,也好以此向周围的同学、同事炫耀一番。相信赢得些许羡慕的目光应该不是什么难事。好了,闲话暂且不提,先简单介绍一下本文将要介绍的知识点。

  本文将通过一个简单的J2ME程序"整蛊专家"的开发向读者介绍信息框的显示、命令按钮的添加、通过文本框与用户的交互、对命令按钮的响应以及对所开发应用程序的打包发布等主要内容。最终展现给读者的将是一个能够在真机运行的J2ME手机程序。

  程序的设计

  首先,按照上一篇文章介绍的知识创建J2ME项目Test并添加MIDlet到其中。现在就在EclipseMe生成的框架代码基础上将下面阴影显示的功能代码添加到相应位置:

package demo;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
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 Test extends MIDlet implements CommandListener {
 private TextBox textbox; // Textbox 显示一条消息
 private Display disp; // 引用MIDlet的Display 对象
 private Command cmdExit; // 设定按钮用于退出MIDlet
 private Command cmdOK; // 确定按钮
 private Alert alt; // 信息提示对象
 public Test() {
  super();
  disp = Display.getDisplay(this); // 获得当前MIDlet的Display对象
  cmdExit = new Command("退出", Command.SCREEN, 1); // 新建两个控制按钮
  cmdOK = new Command("阅读", Command.OK, 1);
  textbox = new TextBox("请输入待阅项目序号:", "", 40, 0); // 新建文本框
  textbox.addCommand(cmdExit); // 添加控制按钮
  textbox.addCommand(cmdOK);
  textbox.setCommandListener(this); // 开始侦听命令
 }
 protected void startApp() throws MIDletStateChangeException {
  alt = new Alert("整蛊专家 V1.0");// 开始运行时显示版权信息,新建信息框对象
  // 设置显示字符串
  alt.setString("==== 整蛊专家 V1.0 ====郎锐2004年作版权所有(C) 2004-2005");
  alt.setType(AlertType.INFO); // 设置为普通阅读信息框
  alt.setTimeout(Alert.FOREVER); // 信息窗口在按下DONE键后才能进入下一页面
  disp.setCurrent(alt, textbox); // 显示信息窗口
 }
 protected void pauseApp() {}
 protected void destroyApp(boolean arg0){}
 public void commandAction(Command arg0, Displayable arg1)
 {
  if (arg0 == cmdExit) { // 按下退出键时停止运行
   destroyApp(false);
   notifyDestroyed();
  }
  if (arg0 == cmdOK) { // 按下阅读键后阅读对应信息
   TextBox textbox = (TextBox)arg1; // 得到用户输入的内容
   String sInfo = textbox.getString();
   if (sInfo.equals("1") || sInfo.equals("2") || sInfo.equals("3") || sInfo.equals("4") || sInfo.equals("5")) { // 显示项目1的内容
    // 根据所选项目选择要显示的内容
    if (sInfo.equals("1")) alt.setString("一兄弟脾气甚……");
    if (sInfo.equals("2")) alt.setString("猪的四大愿望……");
    if (sInfo.equals("3")) alt.setString("春风里,百花下……");
    if (sInfo.equals("4")) alt.setString("为什么……");
    if (sInfo.equals("5")) alt.setString("昨夜做了……");
    alt.setTitle("您正在阅读短信" + sInfo); // 设置标题
   }else{
    alt.setString("很抱歉,暂时还没有您选择的项目,请重新输入!");
    alt.setTitle("错误警告"); // 设置标题
   }
   alt.setType(AlertType.INFO); // 设置为普通阅读信息框
   alt.setTimeout(Alert.FOREVER); // 信息窗口在按下DONE键后进入下一页面
   disp.setCurrent(alt, textbox); // 显示信息窗口
  }
 }
}

  在讲述这段代码之前首先介绍一下MIDlet的生命周期:一个MIDlet在其生命周期中共有三种状态,分别是暂停、活动和停止。MIDlet被加载后首先是处于暂停状态,在J2ME调用startApp()方法后转入活动状态。通常情况下应用程序是不必考虑如何控制其运行状态的,其状态的切换由手机来决定。例如,在程序运行过程中如果有电话呼入则会自动转入暂停状态而无须在与用户交互后才能做出判断。最后,当用户按下手机的取消键时,MIDlet将进入停止状态。

  在Test类的构造函数中首先得到当前MIDlet的Display对象,以便进行界面显示。随后通过new操作符新建项目将要用到的命令按钮、文本框等高级用户界面类的对象。在创建命令按钮时,可以通过参数指定所要创建的命令按钮种类。在TextBox类方法addCommand()将其添加到文本框后需要继续调用setCommandListener()方法以开始命令的侦听,否则创建出来的命令按钮仅仅是个无法响应任何操作的摆设。由于需要处理按键,因此在这里必须实现CommandListener接口并处理commandAction方法,该方法的具体实现过程稍后在进行介绍。

  为了在程序开始之初启动程序封面,以显示版权信息、软件介绍等简介性质的文字或画面,需要在startApp()方法中添加相应的代码。这里是通过信息框来实现这一功能的。首先新建一Alert对象,并设置标题、内容信息和信息框类型。通常我们更习惯在按键之后再进入下一页面,为了实现这一效果可以在调用setTimeout()方法时指定FOREVER这一属性参数。设置完毕后通过Display的setCurrent()方法指定该信息框为当前显示界面。

  本程序具有用户交互功能,用户可以通过输入要查看短信的序号来阅读不同的短信内容。为实现该功能就要在commandAction()方法中添加代码进行处理。由于本程序添加有两种不同功能的按键,因此首先需要对第一个参数进行检查以区分当前执行的是退出命令还是确定命令。如果按下的是后者,再通过第二个参数得到用户通过键盘在文本框录入的字符并进行检测判断,对于习惯了C++编程的开发人员需要注意,在判断字符变量是否与其他字符相等时不能使用"=="操作符而要使用String的equals()方法进行判断。剩下的工作就是再以信息框将用户需要的短信显示出来即可,具体实现过程与前述方法类似。


  Eclipse在代码编写过程中会动态检查错误,在出现错误后,可以将鼠标移到在出错代码左侧的错误图标上双击鼠标,将弹出如上图所示的更改建议,用户可以在其上双击鼠标接受其建议,在右侧浮动窗口显示的代码将自动添加到适当的位置。


1 2  下一页

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
,移动开发相关内容,移动开发焦点新闻
  • Eclipse开发J2ME程序之Hello World
  • Eclipse开发J2ME程序之插件安装
  • Eclipse开发J2ME程序之安装配置
  • MVC在J2ME项目中的应用之MVC慨述
  • Eclipse开发J2ME手机程序之简介
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,移动开发Advertisement

    天极无线
    经典名曲 华语流行 欧美风情 人声音效 原声大碟
    你好周杰伦-安又琪
    直线-张韶涵
    天边-张韶涵
    看我72变-蔡依林
    乱世佳人-Twins
    全世界下雨-张娜拉
    我们的爱-飞儿乐队
    分手快乐-梁静茹
    爱在西元前-周杰伦
    三万英尺-迪克牛仔
    爱如潮水-张信哲
    爱情宣言-齐秦
    寻找玛依拉-刀郎
    驼铃-刀郎
    老鼠爱大米-杨臣刚
    功夫主题曲
    仙剑主题曲杀破狼
    天下无贼片尾曲
    冲动的惩罚-刀郎
    情人-刀郎
    爱情-莫文蔚
    挪威的森林-伍佰
    奔跑 - 羽泉
    因为爱 - 羽泉
      ·时尚女人圈
    ·经典影视专集
    ·美女秀场
    ·美丽大自然专题
    ·流行金曲
    ·科幻电影特区
    | 最新推荐
    ·你好周杰伦
    ·杀破狼
    ·寻找玛依拉
    ·孤单公园
    ·男人海洋
    | 魔术铃声
    ·少女丰胸
    ·少妇丰胸
    ·减肥魔铃
    ·增高魔铃
    ·美容魔铃

    今日报价查询 更多报价