现在的位置: 首页 > 综合 > 正文

J2ME中标准按键事件代码实战

2013年08月03日 ⁄ 综合 ⁄ 共 3019字 ⁄ 字号 评论关闭

/**
 * @作者 Jcuckoo
 * @创建日期 2008-11-20
 * @版本 V 1.0
 */

public class StandardKeyEventCanvas extends Canvas {
 private String result=null;
 private int i=0;
 protected void paint(Graphics g) {
  if(i==0){
   g.setColor(255, 255, 255);
   g.fillRect(0, 0, getWidth(), getHeight()); 
  }
  Font font=Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD, Font.SIZE_LARGE);
  g.setFont(font);
  g.setColor(0,100,200);
  g.drawString(result, 0, i,0);
  i=i+30;
 }
//键被按下时,激发的事件
 protected void keyPressed(int keyCode) {
  i=0;
  result=null;
  switch(keyCode){
  case Canvas.KEY_NUM0:
   result="键盘0被按下";
   break;
  case KEY_NUM1:
   result="键盘1被按下";
   break;
  case KEY_NUM2:
   result="键盘2被按下";
   break;
  case KEY_NUM3:
   result="键盘3被按下";
   break;
  case KEY_NUM4:
   result="键盘4被按下";
   break;
  case KEY_NUM5:
   result="键盘5被按下";
   break;
  case KEY_NUM6:
   result="键盘6被按下";
   break;
  case KEY_NUM7:
   result="键盘7被按下";
   break;
  case KEY_NUM8:
   result="键盘8被按下";
   break;
  case KEY_NUM9:
   result="键盘9被按下";
   break;
  case KEY_STAR:
   result="键盘*被按下";
   break;
  case KEY_POUND:
   result="键盘#被按下";
  }
  result=result+"   名称:"+getKeyName(keyCode)+"   值:"+keyCode;
  repaint();
 }
//键被释放时,激发的事件
 protected void keyReleased(int keyCode) {
  result=null;
  switch(keyCode){
  case Canvas.KEY_NUM0:
   result="键盘0被释放";
   break;
  case KEY_NUM1:
   result="键盘1被释放";
   break;
  case KEY_NUM2:
   result="键盘2被释放";
   break;
  case KEY_NUM3:
   result="键盘3被释放";
   break;
  case KEY_NUM4:
   result="键盘4被释放";
   break;
  case KEY_NUM5:
   result="键盘5被释放";
   break;
  case KEY_NUM6:
   result="键盘6被释放";
   break;
  case KEY_NUM7:
   result="键盘7被释放";
   break;
  case KEY_NUM8:
   result="键盘8被释放";
   break;
  case KEY_NUM9:
   result="键盘9被释放";
   break;
  case KEY_STAR:
   result="键盘*被释放";
   break;
  case KEY_POUND:
   result="键盘#被释放";
  }
  result=result+"   名称:"+getKeyName(keyCode)+"   值:"+keyCode;
  repaint();
 }
//键被连续按着时,激发的事件
 protected void keyRepeated(int keyCode) {
  result=null;
  switch(keyCode){
  case Canvas.KEY_NUM0:
   result="键盘0被重复按下或一直未释放";
   break;
  case KEY_NUM1:
   result="键盘1被重复按下或一直未释放";
   break;
  case KEY_NUM2:
   result="键盘2被重复按下或一直未释放";
   break;
  case KEY_NUM3:
   result="键盘3被重复按下或一直未释放";
   break;
  case KEY_NUM4:
   result="键盘4被重复按下或一直未释放";
   break;
  case KEY_NUM5:
   result="键盘5被重复按下或一直未释放";
   break;
  case KEY_NUM6:
   result="键盘6被重复按下或一直未释放";
   break;
  case KEY_NUM7:
   result="键盘7被重复按下或一直未释放";
   break;
  case KEY_NUM8:
   result="键盘8被重复按下或一直未释放";
   break;
  case KEY_NUM9:
   result="键盘9被重复按下或一直未释放";
   break;
  case KEY_STAR:
   result="键盘*被重复按下或一直未释放";
   break;
  case KEY_POUND:
   result="键盘#被重复按下或一直未释放";
  }
  result=result+"   名称:"+getKeyName(keyCode)+"   值:"+keyCode;
  repaint();
 }
}
____________________________________________________________

与之对应的MIDlet代码如下:

/**
 * @作者 Jcuckoo
 * @创建日期 2008-11-20
 * @版本 V 1.0
 */

public class StandardKeyEventMIDlet extends MIDlet {
 private Display display;
 private StandardKeyEventCanvas canvas;

 public StandardKeyEventMIDlet() {
  display=Display.getDisplay(this);
  canvas=new StandardKeyEventCanvas();
 }
 protected void destroyApp(boolean arg0)  {
 }
 protected void pauseApp() {
 }
 protected void startApp() throws MIDletStateChangeException {
  display.setCurrent(canvas);
 }
}

抱歉!评论已关闭.