您所在的位置: 首页 > 移动开发 > j2me > j2me进阶 >

J2ME手机键盘测试例子

http://www.j2mehome.com  2009-07-01 20:17  点击:     我要评论()
  • 摘要:今天有空,想想自己一个月前学习J2ME的时候,一直不知道如何编写监听手机键盘的代码,现在把我当时的想法写下来吧。 先贴一个入门级别的代码,再分析: package com.srk.local.key; imp
  • Tags: 手机 例子 void 键盘

今天有空,想想自己一个月前学习J2ME的时候,一直不知道如何编写监听手机键盘的代码,现在把我当时的想法写下来吧。

先贴一个入门级别的代码,再分析:

package com.srk.local.key;

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;


public class KeyActionMIDlet extends MIDlet implements CommandListener {
    private Command exitCommand;
    private MainCanvas currentDisplay;
    public KeyActionMIDlet() {
        currentDisplay = new MainCanvas();
        exitCommand = new Command("退出", Command.EXIT, 1);
    }

    protected void startApp() throws MIDletStateChangeException {
        System.out.println("startApp()!");
        currentDisplay.addCommand(exitCommand);
        new Thread(currentDisplay).start();
        currentDisplay.setCommandListener(this);
        Display.getDisplay(this).setCurrent(currentDisplay);
    }

    protected void pauseApp() {
        System.out.println("pauseApp()!");
    }

    protected void destroyApp(boolean _boolean) throws
            MIDletStateChangeException {
        System.out.println("destroyApp()!");
    }

    public void commandAction(Command command, Displayable displayable) {
        if (command == exitCommand) {
            try {
                destroyApp(false);
                notifyDestroyed();
            } catch (MIDletStateChangeException e) {
                e.printStackTrace();
            }
        }
    }

}


class MainCanvas extends Canvas implements Runnable {
    private String buttonPressed;
    private boolean leftPressed, rightPressed, upPressed, downPressed;
    private int px, py, pu, pd;
    public MainCanvas() {
        init();
    }

    public void paint(Graphics g) {
        g.setColor(0xFFFFFF);
        g.fillRect(0, 0, this.getWidth(), this.getHeight());
        g.setColor(0x000000);
        g.drawString(buttonPressed, this.getWidth() / 2, this.getHeight() / 2,
                     Graphics.LEFT | Graphics.TOP);
        g.drawString("J2ME", px, py, Graphics.HCENTER | Graphics.TOP);
    }

    public void run() {

【编辑推荐】

  1. j2me短信发送机的实现代码
  2. j2me中多线程使用示例
  3. 用J2ME与ASP建立数据库连接
  4. 无线消息 API JSR-205 JSR-102 整理总结
  5. 用J2me RMS存储大容量数据实现(源码)
  6. J2ME 中处理http连接超时分析

MIDP2.0中图片象素级处理之半透明处理
Java专业人士必备的书籍和网站列表
J2ME平台系统结构
深入分析J2ME中的高级事件机制[转载一位Java高手
推荐15个J2ME优秀的GUI库
loading.. 评论加载中....

频道推荐

更多>>
  • 古堡惊魂-密室

  • 类型:冒险解谜
  • 十五世纪时,罗马尼亚中部特兰西瓦尼亚有一座古堡,名为拜恩古堡。据说,这里住着一位名叫德古拉的伯爵,所以..

推荐博文