问题标签 [keyevent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JFrame java没有生成KeyEvent?
我有一个带有 JFrame 和 3 个 JButton 的 java 程序。我在 jframe 中添加了一个 keylistener。当我运行程序时,会打开一个 jframe 窗口,并且默认选择第一个按钮。我的问题是这个 JFrame 没有生成 KeyEvent。现在,除了向 jframe 添加 KeyListener 之外,我还向按钮添加了 KeyListener。现在按键事件正在由按钮生成。
如何让 JFrame 生成 KeyEvent 而不是 JButton 生成它们?
实际上,我的主要目的是为按钮构建键盘快捷键。
java - 怀疑Android中的KeyEvent.KEYCODE_BACK
我有 3 个活动。第一个活动有一个“向右走”图像按钮。(移动到第二个活动)第二个活动有“向右走”和“向左走”图像按钮。(返回第一项活动或移至第三项活动)。第三个活动有一个“向左”按钮移动到第二个活动。我已经为后退键创建了事件。
问题是,您从第一个活动导航到第三个活动,然后返回然后导航到第三个活动。第一个活动---点击右转---->第二个活动---点击右转----->第三个活动---点击左转---->第二个活动----点击左转- --->第一个活动----点击向右走---->第二个活动---点击向右走----->第三个活动。
现在,如果我在第三个活动上按返回键,它会移动到第二个。在这里按返回键,它移动到第一个。但是在这里,如果我按返回键,它会再次进入第一个活动。只有在第一个活动上的第二个返回键才会退出应用程序。另一个问题是如何使 Imagebutton 只有当我按下时才可见?
我有任何意义吗?
第一活动.java
SecondActivity.java
第三活动.java
java - KeyEventDispatcher 适用于一个应用程序,但不适用于另一个应用程序
我一方面有一个复杂的多线程应用程序,另一方面有一个单线程测试应用程序,我希望用它来调试第一个。我正在尝试使用 AKeyEventDispatcher
作为一种keylistener
,但无论我多么努力,我都无法dispatchKeyEvent
在较大的应用程序中触发,但较小的应用程序在第一次尝试时工作,并且它们都使用相同的KeyEventDispatcher
类。我已经在互联网上搜寻了一个解决方案,或者至少是一个解释,但我基本上什么也没找到。
这是较小应用程序的代码:
这是KeyEventDispatcher(AoDKeyboard)
该类的代码:
最后,这是大型应用程序代码的一部分,其中包含KeyEventDispatcher
不起作用的代码:
当我运行更大的应用程序时,也会发生一些有趣的事情;我按下的任何键都会输入到我的编译器(eclipse)中,就好像我的键盘焦点一直在编译器上一样。
现在我对这个问题的最佳猜测是,KeyEventDispatcher
它被添加到队列中太远了,因此任何键事件在它们到达我的调度程序时都会被处理,但我可能完全错了。我想我的问题是,为什么KeyEventDispatcher
在一个应用程序中工作而不在另一个应用程序中工作,我怎样才能让它在两个应用程序中工作?
android - 将 unicode 值转换为 OnKeyboardActionListener.onKey 中的 KeyEvent 常量
我是 Android 开发新手,目前正在为 Google Android 操作系统(API 级别 11 == 3.0 版)编写输入法编辑器 (IME)。
(以下代码被简化以指出问题。)
我可以通过以下方式将字符发送到底层应用程序:
现在我想发送特殊的组合键(例如 SHIFT + A)。达到此目标的 Java 代码如下(针对 SHIFT + A 的特殊情况):
上一个代码示例中的注释显示了我的问题。要通过KeyEvent对象发送组合键,我必须将变量primaryCode(包含按下的键的 unicode 代码)转换为KeyEvent类的常量。
这种情况下的方便方法是否已经存在,还是我必须自己编写?一般来说:上述发送键组合的解决方案是优雅的还是存在更好的方法?(在互联网上很难找到 Android IME 的示例......)
先感谢您!
android - 通过 Android API 发送组合键(元键和键码)
我不知道如何使用 Android 发送元键(例如 CTRL)和键码(例如 RETURN)的组合(我使用的是 API 级别 11 = 版本 3.0)。
KeyEvent类的文档提到了META_CTRL_ON等常量,并且还支持元键的键码常量(例如KEYCODE_CTRL_LEFT)。
我正在使用Javascript Key Event Tester来测试由我的输入法编辑器 (IME) 生成的输出。顺便说一句,我的目标是开发一个软件键盘。
如果我正确理解文档,执行以下代码仅发送 CTRL 键就足够了:
但是,当针对 Javascript Key Event Tester(见上文)执行此操作时,什么也没有发生。
因此,我需要了解如何仅发送元键并将元键与另一个键组合发送。我还尝试了以下发送 SHIFT+ENTER(具体示例):
这里也出现与上面相同的问题:唯一可识别的键是 ENTER。
我已经在互联网上搜索了几个小时的示例,如何使用带有元键和/或组合键的KeyEvent类,但至少找不到一个代码示例。
所以,总而言之:有没有人使用过KeyEvent类并且可以向我展示如何通过 Android API 发送一个简单的键组合(例如 SHIFT+ENTER)?
先感谢您!
webkit - Python Webkit GTK注入特殊键事件
我正在尝试将 GTK 键盘事件分派(注入)到某个窗口,特别是其中带有 webkit webview 的窗口。我遇到的问题是使用 Backspace、Up、Down 等特殊键。由于某种原因,它们没有被正确注入,这意味着相应的功能没有被触发。对于其他键,它可以完美运行。我试图将键盘聚焦在窗口上并将窗口放在窗口 z-index 堆栈的顶部,但这没有帮助。
这是 C 到 Python 的绑定部分,我只需将键码 (key_value) 传递给函数。我对密钥释放事件(GDK_KEY_RELEASE)做了类似的事情。在 Python 部分中,我调用这两个函数(按下然后释放),它适用于普通键,如 a、s、d 等。但是,它不适用于 BackSpace、Enter、Delete 等。
javascript - 操作系统独立的键盘事件到字符映射
显然,Web 应用程序需要根据用户的键盘设置进行调整,对吗?有没有办法告诉 Dojo 连接到实际的 KeyPress 事件而不是 KeyDown,这样我们就可以从 获取输入的字符event.charCode
?
由于我们生活在一个国际化的世界中,有多个操作系统等等,这些信息不足以找出用户实际输入的字符,除非我在浏览器中内置了一些功能来询问操作系统。
例如,在 Linux 上的德语键盘上,[ 通过 Alt Gr-8 到达,它发送一个用于 Alt 的按键,然后发送一个带有 [ 的按键。好吧,忽略第一部分。在带有德语键盘的 Windows 系统上,第二个事件是针对 8 且 ctrlKey 和 altKey 设置为 true。我不认为 JavaScript 代码应该解释硬编码,因为使用其他键盘设置,这个组合键实际上意味着不同的字符。
再举一个例子(可能没有连接到 Dojo,而是其他程序员的小故障,对咆哮感到抱歉……),在 mac 上使用美式键盘时,您无法在 Outlook Web 界面中键入德语字符 ß - 因为 Outlook 伪造( !) 劫持 alt 键(在 mac 上专门用于修改键入的字符)以触发操作,因此 alt-s 被重新映射为发送。当然,通常在一个单词的中间。
javascript - 在 HTML5 原生拖动期间检测 keydown/up 事件
我有一个可以使用原生 HTML5 拖动的元素。它具有分配给它的 dragstart、drag 和 dragend 事件侦听器。此外,我还为 document.body 元素分配了 keydown 和 keyup 事件侦听器。
拖动可拖动元素时,ondrag 事件将按预期触发。当我在不拖动任何东西的情况下按下并释放任何键时,document.body keydown/up 事件将触发。
但是,如果我在执行 ondrag 时 keydown/up,则不会触发 document.body keydown/up 事件。有什么解决方法/黑客吗?
c# - KeyEvent 未检测到任何键 C#
我目前很难过。我似乎无法让 KeyEvent 工作。像这样的简单代码不会响应我按下的键。我试过 KeyDown 和 KeyPress。编译时没有错误...是什么原因造成的?它只会让我输入 E 键而不提示消息框。
android - 为什么 if else 语句的两边都被执行,以及如何解决它?
我有一段代码:
我想要的是,当按下回车键时,它会执行登录命令(启动是执行登录的按钮)。但是,在执行 true 块之后,它还会继续执行 else 块,返回 false 并导致(仅在某些设备上)第二次登录。
所以我的问题分为两部分:if else 语句如何评估为真和假,以及我怎样才能使它不这样做。我已经想到了一些技巧来实现这一点,但这似乎是一个更好地理解然后快速修补的问题。