首页 / 软件开发 / JAVA / J2ME三种低级用户界面事件处理技术比较
J2ME三种低级用户界面事件处理技术比较2011-04-03在J2ME的低级用户界面编程中,进行事件处理是经常使用到的技术之一,因为处理手机键盘上的按键事件是最常使用到的一种,所以就以此为中心,介绍一下实际使用过程中三种处理方式进行说明:1、 覆盖keyPressed方法在继承了Canvas的界面中,如果需要进行按键的处理,我们只需要在该类中覆盖Canvas类里面的这个方法,当手机按键被按下时,系统会自动调用该方法,并把被按下的按键的键值(keyCode)作为参数传递进来。所以如果需要处理按键事件,只需要在该方法内部检测按下的按键的键值就可以了。在手机键盘上,可以简单的分为功能键区域和数字键区域,功能键指手机上的左右软键,中间的导航键以及接听电话和挂机键等,数字键区域指手机键盘上的0-9数字键以及*号和#号键。其中功能键的个数以及键值,不同的手机区别很大,而数字键的区域的按键个数,以及按键的键值都是一样的。检测键值有如下两种方法:a) 直接使用keyCode值直接使用keyCode值的代码有如下两种,分别是:if(keyCode == 52){
//处理代码
}
或者:
if(keyCode == Canvas.KEY_NUM4){
//处理代码
}以上是使用按键处理中的两种代码书写风格,建议实际使用过程中使用第二种,这样代码容易阅读。 而在实际的游戏开发过程,除了一些特殊的功能键,例如手机上的左右软键,很少使用这种方式进行编写,而是采用下面的方式进行处理。b) 使用gameAction(游戏动作)gameAction是一种将手机键盘映射成为游戏动作的机制,通过这种机制,可以使不同手机上的按键都能转换为类似或者是相同的游戏动作,当然这个工作是由每个手机厂商实现的。实际使用中的代码如下://将keyCode转换为游戏动作int action = getGameAction(keyCode);其中,keyCode和游戏动作的对应关系如下:Canvas.UP——数字键2和向上导航键Canvas.DOWN——数字键8和向下导航键Canvas.LEFT——数字键4和向左导航键Canvas.RIGHT——数字键6和向右导航键Canvas.FIRE——数字键5和确定导航键Game_A、Game_B、Game_C、Game_D分别对应键盘上的1、3、7、9或者是7、9、*、#键。转换成游戏动作以后的事件处理代码如下:switch(action){
case Canvas.LEFT://向左
//处理代码
break;
case Canvas RIGHT://向右
break;
case Canvas.UP://向上
break;
……
}