JAVA教程之J2ME三种初级用户界面事务处置手艺对照...
手机用到的是用j2me所编出来的小程序。对照在J2ME的初级用户界面编程中,举行事务处置是常常利用到的手艺之一,由于处置手机键盘上的按键事务是最常利用到的一种,以是就以此为中央,先容一下实践利用过程当中三种处置体例举行申明:1、掩盖keyPressed办法
在承继了Canvas的界面中,假如必要举行按键的处置,我们只必要在该类中掩盖Canvas类内里的这个办法,当手机按键被按下时,体系会主动挪用该办法,并把被按下的按键的键值(keyCode)作为参数传送出去。以是假如必要处置按键事务,只必要在该办法外部检测按下的按键的键值就能够了。
在手机键盘上,能够复杂的分为功效键地区和数字键地区,功效键指手机上的摆布软键,两头的导航键和接听德律风和挂机键等,数字键地区指手机键盘上的0-9数字键和*号和#号键。个中功效键的个数和键值,分歧的手机区分很年夜,而数字键的地区的按键个数,和按键的键值都是一样的。
检测键值有以下两种办法:
a)间接利用keyCode值
间接利用keyCode值的代码有以下两种,分离是:
if(keyCode==52){
//处置代码
}
大概:
if(keyCode==Canvas.KEY_NUM4){
//处置代码
}
以上是利用按键处置中的两种代码誊写作风,倡议实践利用过程当中利用第二种,如许代码简单浏览。而在实践的游戏开辟历程,除一些特别的功效键,比方手机上的摆布软键,很少利用这类体例举行编写,而是接纳上面的体例举行处置。
b)利用gameAction(游戏举措)
gameAction是一种将手机键盘映照成为游戏举措的机制,经由过程这类机制,可使分歧手机上的按键都能转换为相似大概是不异的游戏举措,固然这个事情是由每一个手机厂商完成的。
实践利用中的代码以下:
//将keyCode转换为游戏举措
intaction=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){
caseCanvas.LEFT://向左
//处置代码
break;
caseCanvasRIGHT://向右
break;
caseCanvas.UP://向上
break;
……
}
这个就是MIDP1.0中最常利用的按键处置体例。可是不管这类体例怎样的优胜,它仍是没法挣脱keyPressed办法的束厄局促。
如许就将游戏编程中的三种逻辑:提早、呼应用户操纵、从头绘制,断绝了开来,分离在用户线程和体系线程中举行。
为懂得决这个不敷,MIDP2.0在GameCanvas外部引进了一种新的事务处置体例按键形态(keyStates)机制。
2、利用keyStates
按键形态指体系经由过程一个变量来纪录手机键盘上每一个和游戏举措有关的按键,假如该键按下则设置对应的位(bit)为1,不然为0,然后能够经由过程位运算取得哪一个按键被按下。
注重:按键形态只能在MIDP2.0的GameCanvas子类中内里利用,并且只能处置和游戏相干的按键。假如撑持该处置体例处置游戏按键的话,将在keyPressed办法中没法吸收到和游戏相干的按键,其他按键还能够一般吸收呼应。
假如要利用该功效,起首要在GameCanvas子类的机关办法中,让该界面撑持该操纵,这个步骤可使用GameCanvas的机关办法来完成,代码以下:
//使该界面撑持按键形态处置
super(true);
如许该界面就能够举行按键形态处置。和后面的按键处置分歧,该种处置体例能够离开keyPressed办法的限定,也就是说能够写在恣意的处置办法外部,只必要在线程中挪用便可。
利用该处置体例,不管线程中的提早何等长,体系都能够坚持该按键的形态。这个优点是其他处置体例没法做到的。
起首,取得游戏按键形态,代码以下:
//取得游戏的按键形态
intstates=getKeyStates();
该代码的感化是取得以后按键形态,并把按键形态清空!详细的处置代码以下:
//处置按键形态:
if((states&GameCanvas.LEFT_PRESSED)!=0){//向左
}
if((states&GameCanvas.RIGHT_PRESSED)!=0){//向右
}
在MIDP2.0的GameAPI处置中,这个体例使手机游戏开辟从头回回到传统的形式中,也使游戏的处置加倍天真。
主要缺点就是:速度比较慢,没有C和C++快 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种语言,用以产生「小应用程序(Applet(s)) Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 是一种使用者不需花费很多时间学习的语言 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
页:
[1]
2