当前位置: 首页 > 面试题库 >

将键盘事件从Java发送到任何应用程序(屏幕键盘)

姬博瀚
2023-03-14
问题内容

我正在使用Java开发屏幕键盘。该键盘的JComponent每个可能键都有一个。在按钮上检测到鼠标按下时,我想向当前关注的应用程序发送特定的键盘代码。键盘本身位于JFrame无装饰的范围内,并设置为始终在顶部。

我发现Robot类可用于模拟本机队列上的这些键盘事件。但是,在这种情况下,选择JComponent表示将在上接收到按键JFrame,而我将无法在其他应用程序中接收到它。

如何使屏幕键盘始终保持“无焦点”状态?是否可以使用其他方法发送按键?


问题答案:

显然,执行此操作的唯一方法是拥有一个JNI层,该层将进行从Java到本机的转换。Java没有提供这种功能的简便方法。

对于想要学习JNI的小型第三方库来说,这可能是一个有趣的概念。



 类似资料:
  • 键盘事件的种类 键盘事件由用户击打键盘触发,主要有keydown、keypress、keyup三个事件,它们都继承了KeyboardEvent接口。 keydown:按下键盘时触发。 keypress:按下有值的键时触发,即按下 Ctrl、Alt、Shift、Meta 这样无值的键,这个事件不会触发。对于有值的键,按下时先触发keydown事件,再触发这个事件。 keyup:松开键盘时触发该事件。

  • 输入框接口 用于弹起输入框,供用户输入文字。可以通过注册监听函数进行监听用户的输入,监听完毕请及时调用注销方法,取消监听。 BK.UI.showKeyboard(Object) 显示输入框,弹出键盘 手Q版本:7.6.5 函数参数Object: 属性名 类型 是否必填 说明 deaultText string 否 默认要展示的字符串 complete Function 否 接口调用完成回调 示例:

  • 问题内容: 我想为Java Swing应用程序创建一个应用程序范围的键盘快捷键。遍历所有组件并在每个组件上添加快捷方式,具有与焦点相关的副作用,并且似乎是蛮力解决方案。 有人有更清洁的解决方案吗? 问题答案: 安装自定义KeyEventDispatcher。KeyboardFocusManager类也是使用此功能的好地方。 KeyEventDispatcher

  • 我正在实现一个Javascript应用程序的屏幕键盘。文本应该出现在textarea元素中。我创建文本事件没有问题,但感觉无法创建非文本事件,如退格键。下面是一些示例代码: 这里有趣的函数是。我试图获得完全相同的事件,如按下物理键盘上的退格键,但没有成功。 我知道有一个Webkit-Bug,但希望有其他的方法来解决这个问题。有人有过同样的问题吗?能解决吗?怎么做?这里建议的解决方案(调用new)不

  • 对于桌面游戏,一般需要通过键盘做一些游戏内的控制,这时你就需要监听键盘事件。Cocos2d-x 支持键盘事件,就像上节介绍的触摸事件一样。 创建键盘事件监听器: // creating a keyboard event listener auto listener = EventListenerKeyboard::create(); listener->onKeyPressed = CC_CALL

  • 与响应鼠标事件相比,响应 Canvas 键盘事件没有那么直接,因为 Canvas 本身并不支持键盘事件的响应。我们需要耍一点小手段——在 Canvas 上添加一个支持键盘事件的其他对象。 本节的例程将在 7.2 节例程的基础上添加键盘响应事件。 html 部分变更的代码如下: //canvas_mk_event.html <canvas tabindex="0"></canvas>