keystate.java

来自「example2 众多JAVA实例源码...学习java基础的好帮手」· Java 代码 · 共 80 行

JAVA
80
字号
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 + =
减小字号Ctrl + -
显示快捷键?