J2ME开发之手机键盘使用注意问题

J2ME开发之手机键盘使用注意问题

作者:陈跃峰

出自:http://blog.youkuaiyun.com/mailbomb

 

       在J2ME程序的开发过程中,经常需要接受用户的输入,而所有这些的输入都是通过手机键盘进行的,下面介绍一下在使用的时候需要注意的问题。

       在高级用户界面开发中,只能使用功能键来控制Command按钮,这些都是一些固定的模式,例如手机显示两个Command的话,分别对应屏幕上的左右两个Command,不需要用户去处理键值,所以不存在移植的问题,在所有的手机上都是通用的。

       但是在低级用户界面开发中,可以直接获得手机的键值(keyCode),因为不同的手机中按键的键值存在差别,所以就存在移植的问题了。

       在手机键盘上,可以简单的分为功能键区域和数字键区域,功能键指手机上的左右软键,中间的导航键以及接听电话和挂机键等,数字键区域指手机键盘上的0-9数字键以及*号和#号键。其中功能键的个数以及键值,不同的手机区别很大,而数字键的区域的按键个数,以及按键的键值都是一样的。

       所以在游戏中为了使程序通用,一般都不直接使用键值来进行判断,而是用游戏动作(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、*、#键。

       经过上面的转换以后,代码实现就和手机键盘上的键值无关了。

       另外,如果是Nokia系列的手机,还可以使用com.nokia.mid.ui.FullCanvas类里面的SOFTKEY1、SOFTKEY2来控制Nokia系列手机上的左右两个软键,做到这两个软键的处理通用。

 

J2ME模拟器模拟2007版的手机QQ 打开里面的qq_2007.jar文件即可登录,模拟2007手机qq,欢迎下载 立即下载

相关推荐

J2ME游戏中按键消息处理系统的设计

J2ME游戏中按键消息处理系统的设计J2ME游戏中按键消息处理系统的设计

J2ME游戏中键盘入门

       为了使程序能在不同的设备上运行,就一定要考虑不同设备间键盘布局的特点,在开发程序时不能假设按键的布局方式。                                                         getKeyState()方法所返回的键盘值键    值相对应的KeyStates值UP_PRESSE

lengyuhong的专栏 1064

J2ME模拟器 QQ2007-Android工具类资源

模拟2007手机qq 打开里面2007的jar 即可登陆

j2me模拟器java游戏存档修改,j2me loader模拟器中文

j2me loader模拟器中文专门为喜欢java经典小游戏的玩家准备的非常不错的软件,游戏中玩家能在自己的手机上运行经典JAVA游戏,给你带来最棒的游戏体验,相信不少的用户都会非常喜欢,赶紧下载最新的j2me loader模拟器中文体验吧!基本介绍J2ME Loader是一个Android版的J2ME (Java 2 Micro Edition)模拟器。它支持大多数的2D游戏和部分3D游戏(Ma...

weixin_32093689的博客 1632

虚拟键盘java模拟器

虚拟键盘java模拟器

J2ME模拟器 QQ2007

模拟2007手机qq 打开里面2007的jar 即可登陆

j2me模拟器qq2007_如何在J2ME中创建MIDlet

j2me模拟器qq2007总览 Java移动应用程序称为J2ME。 通常,当我们在移动技术领域工作时,我们必须考虑J2ME应用程序。 通过这种方式,我们可以开发我们的移动应用程序,也可以通过jad或jar文件将其安装在我们的设备中。 近年来,手机开发中最大的增强是JavahostedMIDlet的引入。 MIDlet在Java虚拟机上执行,该Java虚拟机对底层硬件进行了抽象处理,并允许开发人员...

cunhu2961的博客 2153

5nm制程的CV5芯片实测:用它给无人机做8K拍摄和实时避障,功耗和性能到底怎么样?

本文深度评测了5nm制程的CV5芯片在无人机8K拍摄和实时避障中的表现。通过实测数据展示了CV5的异构计算架构、8K视频编码性能和CVflow®AI引擎的加速效果,同时提供了开发中的优化技巧和散热建议,为无人机开发者提供了实用的参考。

weixin_30861797的博客 358

FreeJ2ME:如何让经典J2ME游戏在你的电脑上重生

还记得那些在诺基亚手机上度过的青春时光吗?那些简单的像素游戏,虽然画面不如现在的3A大作,却承载着我们最纯粹的快乐。现在,一个名为**FreeJ2ME**的免费开源项目,正在帮助无数玩家找回那些失落的经典游戏记忆。 想象一下,你突然想起小时候玩过的《贪吃蛇》或者《空间大战》,却发现它们早已消失在应用商店中。这就是**J2ME游戏**面临的困境——随着智能手机的兴起,这些经典游戏逐渐被遗忘。但有了

gitblog_00853的博客 348

异常数据处理——3σ原则、箱线图

异常数据处理——3σ原则、箱线图 用不包括异常值的剩余数据的均值替换、删除DataFrame中某列有异常值的整行等方法

杨老师的小跟班(*∩_∩*) 9035

40岁从智驾转具身智能之路

我的工作经历比较复杂,本科毕业后工作2年再次读研的,本科和硕士都是机械专业,硕士毕业后干了5年CAM和机器人再转入到自动驾驶行业。在自动驾驶干了8年,发现自动驾驶已经到了一个瓶颈,再次转行做具身智能。我就谈谈自己的最近这次转型之路。

hzm8341的博客 641

android是j2me的一个实现吗,j2me与android的区别

近期找工作,时间紧任务重,属于更新,现在终于定下了。先高兴一番。但是也有个小纠结,因为要学习j2me。从android转回j2me。看似逆流而上为人所不知,但是好在自己想开了。j2me是基础,基础好了,android小活。呵呵。废话不多说,先说基础的。(网上找的,以供参考)J2ME与Android程序部分比较一、程序入口J2me程序入口类为MIDlet,所有的j2me程序都要继承该类来初始化j2m...

weixin_30516429的博客 374

DaVinci Configurator BswM模块配置

BswM是AUTOSAR(Automotive Open System Architecture)系统架构中的模块之一,它是基础软件模块(BSW)之一。BswM全称为Basic Software Module Manager(基础软件模块管理器),它负责管理和协调其他BSW模块的行为和交互,以实现整个系统的功能。BswM可以被看作是一个状态机,通过监控系统的状态和事件触发,来控制其他BSW模块的运行状态和互相配合,以达到整个系统的预期行为。

qq_59258431的博客 3950

android是j2me的一个实现吗,J2me和安卓有什么区别

首先从程序上来说的话,基本是没有多少区别的.都是使用JAVA语言开发,使用的框架和类不同而已.一、平台的区别J2me: 开发平台Android: 操作系统二、工程结构比较J2me:Res:资源文件Src:源代码Android:Src:源代码Res\drawable:图片Res\raw:声音Res\values:字符串Assets:数据文件三、安装包比较J2me: Jad,jarAndroid: a...

weixin_29323365的博客 609

滴滴数据分析80道面试题及参考答案

常见的模型评价指标有准确率、召回率、F1 值、均方误差、均方根误差、R 方等。准确率是指模型预测正确的样本数占总样本数的比例,它反映了模型预测的准确性。召回率是指模型预测为正例的样本中实际为正例的比例,它衡量了模型对正例的捕捉能力。F1 值是准确率和召回率的调和平均数,综合考虑了两者的平衡。均方误差是预测值与真实值之差的平方的平均值,它衡量了模型预测值与真实值的平均偏离程度。均方根误差是均方误差的平方根,与均方误差类似,但更直观地反映了误差的大小。

大模型大数据攻城狮的专栏 1698

从技术债红线到系统治理:透视 SAP Clean Core 中的 Level D

SAP推出的Clean Core分级体系将扩展风险划分为A到D四个等级,其中Level D代表最高风险类别,涉及直接修改标准代码、隐式增强、使用noAPI对象等不被推荐的做法。这些做法虽然短期见效快,但会带来升级冲突、数据完整性风险等长期问题。SAP强调治理重点不是完全消除经典ABAP,而是优先清理Level D对象,逐步向稳定接口迁移。典型案例显示,依赖内部细节的扩展往往在系统升级或云迁移时集中暴露出问题。企业应通过工具链持续监控Level D占比,将其纳入技术债管理范畴。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1065

如何快速配置免费J2ME模拟器:完整实践指南

FreeJ2ME是一款功能完整的免费J2ME模拟器,支持libretro、AWT和SDL2前端,让你在现代设备上重温诺基亚、索尼爱立信等经典Java手机游戏。这个开源项目提供了完整的J2ME API实现,是重拾经典手机游戏记忆的最佳工具。 ## 🚀 FreeJ2ME模拟器核心特性 FreeJ2ME作为一款强大的J2ME模拟器,具备以下核心优势: **多平台完美兼容** 🖥️ - 支持Wi

gitblog_00449的博客 588

2篇1章1节:数据的基本概念以及 R 中的数据结构、向量与矩阵的创建及运算

本文详细介绍了R语言中常见的数据结构的向量和矩阵。通过掌握这些数据结构的基本概念和操作技巧,可以更高效地处理和分析数据。

MD Code 1246

FreeJ2ME:让经典Java手机游戏在现代设备上重生的完整指南

还记得那些在诺基亚、索尼爱立信等老式手机上玩过的Java游戏吗?《贪吃蛇》、《空间大战》、《百战天虫》……这些承载着无数人青春记忆的经典游戏,如今已经很难在现代智能手机上运行。但别担心,FreeJ2ME这个开源项目为你提供了一个完美的解决方案——一个免费的J2ME模拟器,让你能够重温那些美好的游戏时光。 FreeJ2ME是一个功能强大的Java 2 Micro Edition模拟器,支持libr

gitblog_01002的博客 1140

【5】GD32H7xx CAN发送及FIFO接收

GD32H7xx CAN收发调试记录,包含源码

madao1234的博客 1818

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

(转帖)J2ME Canvas资料

用惯的J2ME高级UI而还没有接触过低级UI的developer一定不会习惯跟Canvas的初夜!因为他没有Form那么多可以触摸到风情万种,也没有Item的独特风味,有的只是一个只画笔一个画布,一些只有名字的事件响应方法,更奇怪的事情是你不能手动的调用paint()去做你想做的事情,一切你都只能任凭系统摆布!今日话题 — J2ME Canvas 开发小解 [请注意不是小姐,你可以理解为详解] !

PigTeacher的专栏 1007

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

跨时空的游戏之旅:用J2ME模拟器在现代设备重温经典手机游戏

当诺基亚3310的贪吃蛇、摩托罗拉V3的JAVA应用成为记忆符号,我们是否还能在智能手机上重温那些像素级的快乐?FreeJ2ME模拟器给出了肯定答案——这个开源项目让Java手机游戏跨越硬件限制,在现代设备上焕发新生。通过多前端架构设计,它不仅实现了对经典游戏的完美复刻,更搭建起连接过去与现在的技术桥梁,让怀旧玩家与开发者都能在其中找到属于自己的价值。 ## 唤醒沉睡的游戏记忆:FreeJ2ME

gitblog_00413的博客 224

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: Nokia系列手机将支持在J2ME中获得IMEI
下一篇: 随机得到Access数据库记录
java2000_test
博客等级 码龄19年 10粉丝 320原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值