📄 keystate.java.svn-base
字号:
package opusmicro.demos.event;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
public class KeyState extends Canvas{
private int keyStates;
/**向上*/
private final int KEY_UP = 1;
/**向下*/
private final int KEY_DOWN = 1 << 1;
/**向右*/
private final int KEY_RIGHT = 1 << 2;
/**向左*/
private final int KEY_LEFT = 1 << 3;
/**5键*/
private final int KEY_FIRE = 1 << 4;
/**左软键*/
private final int KEY_LEFT_SOFT = 1 << 5;
/**右软键*/
private final int KEY_RIGHT_SOFT = 1 << 6;
/**特殊用途按键,例如0键*/
private final int KEY_ZERO = 1 << 7;
/**
* 将物理键值转换为自定义键值
* 说明:该方法和机型相关,下面是WTK的实现
* @param keyCode 物理键值
* @return 自定义键值
*/
private int convertKey(int keyCode) {
switch ( keyCode) {
case -6:
return KEY_LEFT_SOFT;
case -7:
return KEY_RIGHT_SOFT;
case Canvas.KEY_NUM2:
case -1:
return KEY_UP;
case Canvas.KEY_NUM4:
case -3:
return KEY_LEFT;
case Canvas.KEY_NUM6:
case -4:
return KEY_RIGHT;
case Canvas.KEY_NUM8:
case -2:
return KEY_DOWN;
case Canvas.KEY_NUM0:
return KEY_ZERO;
}
return 0;
}
public void keyPressed(int keyCode) {
// 转换按键
int key = convertKey(keyCode);
// 保存按键
keyStates |= key;
}
public void keyReleased(int keyCode) {
// 转换按键
int key = convertKey(keyCode);
// 清除按键
keyStates &= ~key;
}
/**
* 清除按键
*/
private void clearKey(){
keyStates = 0;
}
protected void paint(Graphics g) {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -