下面来自JAVA -API
指示组件中发生击键的事件。
当按下、释放或键入某个键时,由组件对象(如文本字段)生成此低级别事件。该事件被传递给每一个 KeyListener 或 KeyAdapter 对象,这些对象使用组件的 addKeyListener 方法注册,以接收此类事件。(KeyAdapter 对象实现 KeyListener 接口。)发生事件时,所有此类侦听器对象都获取此 KeyEvent。
“键入键”事件 是高级别事件,通常不依赖于平台或键盘布局。输入 Unicode 字符时生成此类事件,它们被认为是输入字符的最佳方式。最简单的情况是按下单个键(如“a”)所产生的键入键事件。但是经常是通过一系列按键(如‘shift’+‘a’)来产生字符,并且按下键事件和键入键事件的映射关系可能是多对一或多对多的。键释放通常不需要生成一个键入键事件,但是在某些情况中,只有释放某个键才会生成键入键事件(如在 Windows 中通过 Alt-Numpad 方法来输入 ASCII 序列)。对于不生成 Unicode 字符的键是不会生成键入键事件的(如动作键、组合键等等)。
getKeyChar 方法总是返回有效的 Unicode 字符或 CHAR_UNDEFINED。KEY_TYPED 事件报告字符输入:KEY_PRESSED 和 KEY_RELEASED 事件不一定与字符输入相关联。因此,可以保证 getKeyChar 方法的结果仅对 KEY_TYPED 事件有意义。
对于按下键和释放键事件,getKeyCode 方法返回该事件的 keyCode。对于键入键事件,getKeyCode 方法总是返回 VK_UNDEFINED。
“按下键”和“释放键”事件 是低级别事件,并且依赖于平台和键盘布局。只要按下或释放键就生成这些事件,并且这些事件是获取不生成字符输入的键(如动作键、组合键等等)的惟一方式。由 getKeyCode 方法指示按下或释放的键,它返回一个虚拟键码。
虚拟键码 用于报告按下了键盘上的哪个键,而不是通过一个或多个击键组合所生成的字符(如“A”是由 shift+“a”生成的)。
例如,按下 Shift 键会生成 keyCode 为 VK_SHIFT 的 KEY_PRESSED 事件,而按下“a”键将生成 keyCode 为 VK_A 的 KEY_PRESSED 事件。释放“a”键后,会激发 keyCode 为 VK_A 的 KEY_RELEASED 事件。另外,还会生成一个 keyChar 值为 "A" 的 KEY_TYPED 事件。
注:
不产生 Unicode 字符的键组合(如 F1 和 HELP 键等动作键)不会生成 KEY_TYPED 事件。
并非所有键盘和系统都能够生成所有的虚拟键码。在 Java 中不会尝试人为地生成这些键。
虚拟键码不标识物理键:它们取决于平台和键盘布局。例如,使用美国键盘布局时生成 VK_Q 的键在使用法国键盘布局时将生成 VK_A。
并非所有的字符都有与其关联的 keycode。例如,没有用于问号的 keycode,因为没有在主层上显示问号的键盘。
为了支持平台无关的动作键处理,Java 平台为某些功能使用少量附加虚拟键常量,否则必须通过解释虚拟键码和修饰符来识别这些功能。例如,对于日文 Windows 键盘,返回 VK_ALL_CANDIDATES 而不是 VK_CONVERT 加 ALT 修饰符。
警告:除了 Java 语言定义的这些键之外(VK_ENTER、VK_BACK_SPACE 和 VK_TAB),不要依赖于 VK_ 常量值。Sun 保留更改这些值的权利,以备将来根据需要适应更大范围的键盘。
char getKeyChar()
返回与此事件中的键相关联的字符。
int getKeyCode()
返回与此事件中的键相关联的整数 keyCode。
int getKeyLocation()
返回产生此按键事件的键位置。
static String getKeyModifiersText(int modifiers)
返回描述组合键的 String,如“Shift”或“Ctrl+Shift”。
static String getKeyText(int keyCode)
返回描述 keyCode 的 String,如“HOME”、“F1”或“A”。
boolean isActionKey()
返回此事件中的键是否为“动作”键。
String paramString()
返回标识此事件的参数字符串。
void setKeyChar(char keyChar)
设置 keyCode 值,以表明某个逻辑字符。
void setKeyCode(int keyCode)
设置 keyCode 值,以表明某个物理键。
void setModifiers(int modifiers)
分享到:
相关推荐
Win32API实现的ListBox鼠标键盘事件处理Demo
在Tomcat上发布webservice所需要的jar包,总共25个:FastInfoset.jar/gmbal-api-only.jar/ha-api.jar/javax.annotation.jar/javax.mail_1.4.jar/jaxb-api.jar/jaxb-impl.jar/jaxb-xjc.jar/jaxws-api.jar/jaxws-rt....
LabVIEW键盘操作API.rar
利用键盘钩子在Windows平台下捕获键盘动作-玩红警2时按Q键紧急关闭红警2程序_老板键.zip
WIN32API功能150个(键盘篇),可以设置按键延时和按键速度,改正在WIN98下不能设置Capslock等键错误。@云外归鸟。
Windows和Linux上的钩子和模拟键盘事件 键盘 使用这个小型 Python 库完全控制您的键盘。 挂钩全局事件、注册热键、模拟按键等等。 特性 所有键盘上的全局事件挂钩(无论焦点如何都捕获键)。 监听和发送键盘事件...
win32api 键盘虚拟键码
C#调用API控禁用键盘鼠标,锁屏,禁用资源管理器
利用键盘钩子捕获键盘按键.zip
一个用Windows API写的屏幕键盘
鼠标键盘全局钩子以及windows api hook代码, 鼠标键盘全局钩子以及windows api hook代码 vs2013 工程
使用apihook键盘全局钩子,记录键盘输入.zip
主要是在windows 下通过C++语言实现调用系统键盘整理以及相关知识点梳理,着重于是关闭系统键盘(不是手动点击关闭)
mpr-6zhmaut-api Monoprice 出售这款带有串行接口的古怪。 这个小项目用 JSON API 封装了串行接口。... REQUERY = <true> - 在响应 /zones 请求之前重新查询键盘(默认为 false) CORS = <true> - 使用Access-Control
API取键盘指示灯状态.rar
基于VC 6.0 API实现的软件小键盘,也就是大家熟悉的“软键盘”功能,称为“虚拟键盘”也可以,这是完整的小键盘源码,可以熟悉一下VC API和HOOK(钩子)的用法,程序用到有Button的Subclassing,自己处理鼠标消息;...
罗技脚本编程G-series Lua API 参考文档(中文版),主要是用在罗技G系列的鼠标和键盘的宏编程,实用性比较高,大家互相交流学习!
web-audio-api-keyboard 使用 Web Audio API 可以实现的简单示例。 请注意,Web Audio API 的某些功能目前仅适用于 Chrome,因此使用了“webkit”前缀。 预览: :
此软键盘用C#来实现 ,通过调用API和使用HOOK来实现的屏幕软键盘,实现得非常好。
一个用Windows API写的屏幕键盘(14kb)