下面来自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)
分享到:
相关推荐
- **输入事件处理API**:支持键盘、鼠标等输入设备的事件处理。 - **其他辅助API**:例如字体管理、颜色管理等。 #### 七、MiniGUI API使用示例 为了更好地理解MiniGUI API的使用方式,以下是一些示例代码片段: ...
4. **事件处理**:Java-API-Mac可能会扩展Java的事件模型,以适应Mac OS X的事件处理机制,包括鼠标、键盘、窗口和其他系统事件的处理。 5. **示例代码和最佳实践**:"index.html"文档中的示例代码是学习的关键,它...
2. **窗口和图形操作**:VB-API提供了对窗口创建、销毁、移动、调整大小等操作的支持,以及绘制图形、文字和处理鼠标、键盘事件的能力。 3. **文件和I/O操作**:开发者可以使用API函数进行高级文件操作,如读写文件...
在开发桌面应用程序时,有时我们需要在程序窗口最小化或者后台运行时仍能捕获用户的键盘和鼠标事件。在Windows平台上,这通常通过利用Windows消息机制和钩子(Hooks)技术来实现。Qt作为一款跨平台的C++图形用户界面...
Windows API是微软为开发者提供的一个接口集合,它允许程序员直接与操作系统进行交互,实现各种功能,如窗口管理、图形绘制、事件处理等。在这个项目中,开发者利用Windows API来构建游戏界面、处理用户输入和实现...
在C#中,我们可以利用.NET Framework提供的API来实现键盘事件的监听。 1. **创建Hook委托**: 在C#中,为了声明一个自定义的Hook实现函数,我们需要定义一个委托类型。这个委托类型应该匹配Hook回调函数的签名,...
5. Actions类:提供了一系列方法来模拟复杂的用户操作,如拖放、双击、键盘输入等。 6. WebDriverWait和ExpectedConditions:这两个类结合使用,可以实现等待特定条件满足后再继续执行,提高了测试脚本的稳定性。 ...
键盘操作API可能会用到事件结构来处理键盘输入事件。 2. **系统服务函数**:LabVIEW提供了丰富的系统服务函数,这些函数可以用来与操作系统进行交互。虽然LabVIEW本身没有内置的键盘模拟函数,但可能通过调用低级的...
4. 处理系统事件,如键盘、鼠标输入,以及定时器和线程同步。 5. 使用网络通信API,如TCP/IP编程和套接字通信。 6. 进行内存管理和进程线程操作,以优化程序性能和资源利用率。 7. 调用系统服务,如注册表操作、系统...
通过以上这些Win32 API,开发者可以实现各种键盘相关的功能,包括但不限于键盘输入模拟、按键状态监测、自定义键盘快捷键、键盘事件的响应等。这些技术在游戏开发、自动化工具、系统增强软件等领域都有广泛的应用。...
6. **用户输入**:`GetAsyncKeyState`检测键盘状态,`GetCursorPos`获取鼠标位置,`SetCursor`设置光标形状。 7. **网络通信**:Winsock库提供了`socket`、`bind`、`listen`、`accept`、`send`和`recv`等函数,支持...
例如,可以使用API来创建自定义控件、调整窗口样式、实现动画效果、处理复杂的键盘和鼠标事件等。这些功能可能涉及到Windows API,如CreateWindowEx、SetWindowLong等函数,用于改变窗口属性或创建新的窗口类。 3. ...
在这个“Win32API实现的ListBox鼠标键盘事件处理Demo”中,我们将探讨如何利用Win32 API来处理ListBox控件的鼠标和键盘事件。 ListBox控件是Windows用户界面中的一个重要元素,它允许用户从一系列选项中进行选择。...
6. WebDriver的事件监听:通过EventFiringWebDriver和WebElement的监听器,可以实现对测试过程的监控和日志记录。 7. WebDriver的并发支持:Selenium 3.5.1支持多浏览器实例同时运行,便于进行并行测试,提高测试...
HID设备广泛应用于键盘、鼠标、游戏控制器、打印机等,允许用户与计算机进行交互。 标签 "USB-HID" 明确指出了这个库是关于USB-HID通信的,意味着它处理的是与HID设备的低级别交互,如枚举设备、打开设备、读写报告...
在本案例中,"apihook键盘钩子捕获键盘按键.zip"是一个包含两个文件(KeyHook、LaunchDLL)的压缩包,其核心目标是演示如何通过API Hook技术来捕获并记录用户在键盘上按下按键的事件。 首先,我们要理解API Hook的...
"j3d-1_5_2-api-docs"这个文件很可能是Java3D 1.5.2版本的API文档,它包含了所有类、方法和接口的详细说明,是开发者的参考资料宝典。通过阅读这份文档,开发者可以深入了解每个类的功能,掌握如何使用Java3D API...
4. **事件处理**:事件模型的介绍,包括鼠标、键盘和其他设备事件的处理函数,以及事件队列的管理和调度。 5. **绘图操作**:基本的图形绘制函数,如线条、矩形、圆形、文本等,以及颜色管理、图形变换等。 6. **...
在使用ArcGIS Server API时,通常需要对API所提供的对象、属性、方法以及事件有一定的了解。例如,Map对象的属性可以被设置来定义地图的外观和行为,而Map的函数则用于执行与地图相关的具体操作。通过监听函数,如...
1. **事件日志记录**:记录系统和应用程序的重要事件。 2. **性能计数器**:收集和监控系统资源使用情况的数据。 3. **系统监视器**:图形化工具,用于监视计算机的性能。 4. **错误处理**:包括异常处理、错误报告...