📄 keyeventdemo.java
字号:
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
public class KeyEventDemo extends MIDlet
{
private Display display;
public KeyEventDemo(){
}
public void startApp(){
display=Display.getDisplay(this);
//创建KeyEventCanvas对象,并将其设置为当前要显示的屏幕
KeyEventCanvas canvas = new KeyEventCanvas();
display.setCurrent(canvas);
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
}
class KeyEventCanvas extends Canvas
{
private int eventID=0;
private String eventCotent="";
private int gameKeyCode=0;
//绘图方法
protected void paint(Graphics g){
//用白色填充整个屏幕
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
//发生keyPressed事件
if(eventID == 1){
g.setColor(255,0,0);
g.drawString("KeyPressed:"+eventCotent,10,10,Graphics.LEFT|Graphics.TOP);
eventID=0;
}
//发生keyReleased事件
if(eventID == 2){
g.setColor(0,0,255);
g.drawString("keyReleased:"+eventCotent,10,20,Graphics.LEFT|Graphics.TOP);
eventID=0;
}
//有游戏键被按下
if(gameKeyCode!=0){
g.setColor(0,0,0);
g.drawString("game action key pressed:"+getGameActionName(gameKeyCode),10,50,Graphics.LEFT|Graphics.TOP);
gameKeyCode=0;
}
}
//当用户按下某个按键时,调用该方法
protected void keyPressed(int keyCode){
eventID=1;
eventCotent=getKeyName(keyCode);
gameKeyCode=getGameAction(keyCode);
repaint();
}
//当用户释放某个按键时,调用该方法
protected void keyReleased(int keyCode){
eventID=2;
eventCotent=getKeyName(keyCode);
repaint();
}
//根据键代码返回游戏键的名称
public String getGameActionName(int keyCode){
String name="";
switch(keyCode){
case Canvas.UP:
name="UP";
break;
case Canvas.DOWN:
name="DOWN";
break;
case Canvas.LEFT:
name="LEFT";
break;
case Canvas.RIGHT:
name="RIGHT";
break;
case Canvas.FIRE:
name="FIRE";
break;
case Canvas.GAME_A:
name="GAME_A";
break;
case Canvas.GAME_B:
name="GAME_B";
break;
case Canvas.GAME_C:
name="GAME_C";
break;
case Canvas.GAME_D:
name="GAME_D";
break;
}
return name;
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -