/**
* @作者 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);
}
}