java 手机应用开发实战

来源:互联网 发布:ktv视频制作软件 编辑:程序博客网 时间:2024/05/01 16:40

 捕捉键盘输入的ASCⅡ码”程序

  通过前面的介绍,我们对J2ME已经有了一个直观的认识。下面我们将通过编写一个具体的实例程序,来进一步说明J2ME编写手机应用程序的方法。本例程序应用于摩托罗拉388手机,例程完成后,将捕捉键盘输入的ASCⅡ码。   

1.关于开发工具   

MotoJ2SDK是摩托罗拉388手机定制的命令行开发工具包,其中集成的开发环境包括有CodeWarrior、JCreator等。   无线手持设备(MDIP)简易开发工具包(MDIP的安装方法前文中已有介绍)。   Java 2 SDK 1.3是必备的,它提供开发、测试和运行Java程序的平台(安装方法见前文)。   开发环境笔者推荐使用JCreator。   

2.JCreater+MotoJ2SDK的配置与使用   

这是必须而且是极其重要一步,如果配置不正确,你的程序将无法运行。我们假设所有开发工具的安装路径如下:   JCreator:D:/Program Files/Xinox Software/JCreator LE   MotoJ2SDK:D:/Motoj2sdk   JDK:D:/jdk1.3.1   开始配置之前,我们首先要激活模拟环境。运行D:/MotoJ2SDK/generic/scripts/runConstructor.bat,并正确选择手机型号、选择语言、选择Normal,最后点击;创建”即可。完成以上工作后,我们就可以进行配置了。   第一步,选择Configure→Options→JDK Profiles。   注意:一定新建profile and select;D:/jdk1.3.1”。   将该名字更改为;J2ME 388”;Add classes path更改为;D:/Motoj2sdk/lib”;Add documentation path更改为;D:/Motoj2sdk/docs”。   第二步,选择 Configure→Options→JDK Tools。   选择Complier,选中And Edit It项,将parameters更改为;-O -bootclasspath D:/motoj2sdk/lib $[JavaFiles]”。   第三步,选择Configure→Options→Tools。   单击;New”按钮,选择DOS command新建一个名字为;Preverifier”的DOS command,并将arguments更改为;d:/Motoj2sdk/bin/preverifier.exe -classpath "d:/Motoj2sdk/lib" -d . .”;将initial directory更改为;$[PrjDir]”。   第四步,按上面的方法在新建一个名字为;Run Emulator”的DOS command。   将arguments更改为;java–D java.library.path=d:/MotoJ2SDK/lib -classpath "d:/MotoJ2SDK/bin/Emulator.jar";;"d:/MotoJ2SDK/ConfigTool.jar" com.mot.tools.j2me.emulator.Emulator -classpath$[PrjDir];;"d:/MotoJ2SDK/lib" –deviceFiled:/MotoJ2SDK/bin/resources/device.props javax.microedition.midlet.AppManager $[CurClass] -JSA 1 1"   将initial directory 更改为 ;d:/Motoj2sdk/bin”。   第五步,同样按照上面的方法新建一个名字为;Create Jar”的DOS command。    将arguments更改为;"$[JavaHome]/bin/jar.exe" cvfM $[PrjName].jar    META-INF/MANIFEST.MF *.CLASS *.png”。   将 initial directory 更改为;$[PrjDir]。”   

3.编写实例代码   

选择;Empty Project”新建一个工程,并取名为myJ2 。JCreater会自动在你的工作目录中生成子目录;myJ2”。选择;java File”新建一个java文件。编写以下代码:  

import javax.microedition.lcdui.*;;   import javax.microedition.midlet.*;;   public class test extends MIDlet implements CommandListener {   private KeyEventsDemoCanvas myCanvas;;   private Display myDisplay;;   private Command okCommand = new Command("OK", Command.OK, 1);;   myJ2() {   myDisplay = Display.getDisplay(this);;   myCanvas = new KeyEventsDemoCanvas();;   myCanvas.addCommand(okCommand);;   myCanvas.setCommandListener(this);;   }   public void commandAction(Command c, Displayable s) { }   protected void startApp() throws MIDletStateChangeException {   myDisplay.setCurrent(myCanvas);;   }   protected void pauseApp() { }   protected void destroyApp(boolean unconditional) { }   class KeyEventsDemoCanvas extends Canvas {   public final int BACKGROUND_COLOR = 0xFFFFFF;;   public final int FOREGROUND_COLOR = 0x000000;;   private int lastKey;;   public void paint(Graphics g) {   g.setColor(BACKGROUND_COLOR);;   g.fillRect(0, 0, getWidth(), getHeight());;   g.setColor(FOREGROUND_COLOR);;   g.drawString("Press a key!", 0, 0, Graphics.TOP | Graphics.LEFT);;   if (lastKey != 0) {   g.drawString("Key Code: " + lastKey, 0, g.getFont().getHeight(),   Graphics.TOP | Graphics.LEFT);;   try {   g.drawString("Action: " + getGameAction(lastKey), 0,   2 * g.getFont().getHeight(),   Graphics.TOP | Graphics.LEFT);;   g.drawString("Key Name: " + getKeyName(lastKey), 0,   3 * g.getFont().getHeight(),   Graphics.TOP | Graphics.LEFT);;   } catch (Exception e) {   }   }   }   public void keyPressed(int keyCode) {   lastKey = keyCode;;   repaint();;    }   public void keyRepeated(int keyCode) {   System.out.println("Key repeated" + keyCode);;   }   }

  保存文件,并命名为myJ2.java。在Project中单击;Add file”按钮,在出现的对话框中选中你刚才的myJ2.java文件,编译程序,运行即可。