问题标签 [keylistener]

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.

0 投票
1 回答
1317 浏览

java - Java/Swing:关键监听器的问题

我有一个带有用作搜索框的 JTextField 的搜索对话框。

当用户输入内容时,它会搜索数据库,在 JTable 中显示结果并选择其中的第一项。

如果第一个结果是他们正在寻找的,我想让他们快速接受对话框,按 Enter 键(同时 JTextField 聚焦)。

所以我在 JTextField 中添加了一个 KeyListener,它工作正常。

现在的问题:当对话框的父框架上的“搜索”按钮获得焦点时,用户可以通过按 Enter 打开对话框。

显示对话框并且 JTextField 获取 keyReleased 事件(从显示它的 Enter 键),因此它显示并关闭。如果用户按住 Enter 键,则 JTextField 会收到 keyPressed、keyTyped 和 keyReleased 事件。

如何在不采用丑陋的解决方法的情况下进行修复?

平台是 Windows 7 x64,顺便说一句。

谢谢。

0 投票
3 回答
3443 浏览

java - 将 KeyListener 添加到 JWindow 没有得到任何关键事件

在 Java 中,我将 KeyListener 添加到 JWindow,但它没有获得任何关键事件。如果我使用相同的代码但扩展了 JFrame,那么一切正常。

任何人都知道如何通过使用 JWindow 来解决这个问题?

请注意,我使用的是 Linux,所以我不确定这是否与平台有关。

谢谢

0 投票
3 回答
2679 浏览

java - Java Swing - KeyListener

我如何知道键入的密钥何时更改了我的文本?或者如果键是一个字符?

0 投票
2 回答
1192 浏览

java - 键盘组件的 Java KeyEvents

我正在编写一个 Java 应用程序,它将有一个可用于触摸输入的屏幕数字键盘。普通键输入也将可用,但我想要平板电脑等的键盘。我创建了一个扩展 JPanel 的类。它有 10 个按正常键盘配置布置的按钮。现在我想弄清楚如何让它像一个普通的键盘一样。

我只是不知道如何发布 KeyEvents。这是我到目前为止所尝试的:

我尝试添加一个新的 KeyListener。在 JPanel 中,当按下按钮时,动作侦听器调用一个方法,该方法创建一个新的 KeyEvent 并将其发送到添加到 JPanel 的所有 KeyListener。但是,无论我添加多少次 KeyListeners,它似乎都与面板没有任何关联。

我尝试的另一件事是将目标 JTextField 传递给 JPanel 并将成员对象设置为 JTextField。但是每次我尝试向其附加文本时,成员对象都是空的。这真的让我很困惑。

我希望有人能指出我正确的方向,如何实现这个键盘,使其成为可能的模块化,因此它可以在几个不同的屏幕中使用。

提前致谢!

布伦特

0 投票
2 回答
5321 浏览

.net - 使用 VB.Net 捕获所有键盘事件

我编写了一个带有简单文本框的应用程序,它试图从用户的打字习惯中识别用户(按键之间的间隔、按住持续时间键、击键之间的时间,即对于某些用户来说 a->s 比 a->v 快,对于其他人来说更短,具体取决于打字风格)。它远非完美,但它确实能正确识别出风格上的适度差异。

我希望将其用作安全监视器的一种形式 - 如果用户的打字风格不符合公认的模式,请向中央服务器报告。

当然,测试的下一步是开始捕捉“常规”打字习惯——即在浏览、在应用程序之间切换等时。

我不知道该怎么做是捕获所有应用程序的键盘输入(不包括登录/欢迎屏幕、备用桌面等 - 我没有理由解析它,而且可能没有足够的输入来分析)

免责声明:是的,我知道这非常接近于编写一个被禁止的键盘记录器,但如果我想这样做,我会用 C++ 编写一个键盘驱动程序——我相信它会比它更精简、更容易混淆一个庞大的 .Net MSIL 程序集。我毫不怀疑我会抵制“那是一个键盘记录器”的评论,但我已经碰壁了,需要在某个地方问......

我不需要隐藏应用程序 - 但理想情况下希望能够在没有明确用户确认的情况下捕获输入(除了由管理员安装) - 如果需要用户确认,我可以忍受(只是)如果它可以一次性,我有一些方法来监控和报告拒绝。

这在.Net中甚至可能吗?我能够找到的唯一示例是通过为每个键添加事件挂钩来操作,这看起来很笨重,我想这很容易出错。- 或 - 他们轮询键盘状态以确定按下的键。这对我没有好处,因为 a)我需要精确的按键时间,所以按键向上/向下事件是必须的,并且 b)它很讨厌。

如果该框架旨在明确禁止这种情况,我不会感到惊讶,在这种情况下,我将不得不回退到一些非托管代码来提供事件。我显然更喜欢一直使用托管代码。

任何帮助表示赞赏。

编辑:感谢 Hans Passant 的回答,这是迄今为止我找到的最好的资源:http: //www.codeguru.com/columns/vb/article.php/c4831

0 投票
4 回答
1287 浏览

java - Java keylistener 和对对象的操作,有什么问题?

这是我的代码,我想做的是用按键移动那个矩形。问题 - 我如何在箭头键上指定它以及为什么它不允许我那样工作?它强调

在 KeyPressed 事件中,我的 paddle 对象显示为红色并且不会运行。

0 投票
1 回答
2403 浏览

java - 多媒体键的 Java 接口

0 投票
1 回答
202 浏览

java - 当满足某些条件时,如何忽略客户端程序可能添加的任何 KeyListener?

就这一点而言,我在网络上没有任何运气,我最接近的是阅读EventQueue,但我似乎无法找到默认删除事件的方法。

我重载了 aJTextField以便它在“猜测的”单词(自动完成组件的一部分)中显示剩余的字符,并且当JTextField仍然“猜测”一个单词时按下“Enter”时,我希望它填写剩余的单词 ( this.setText(this.currentGuess);) 的一部分,并忽略KeyListeners可能已添加到客户端程序中的组件的任何其他内容。

作为测试,在构造函数中我添加了两个KeyListeners,到目前为止,我所做的任何事情都无法阻止第二个触发。

0 投票
2 回答
464 浏览

java - Java - keyTyped 问题

当我尝试运行我的程序并按下一个键时,我不断收到同样的错误。

该错误表明问题出在 keyTyped 函数中,但对我来说看起来不错。

你怎么看?

代码:

错误:

0 投票
1 回答
3368 浏览

android - Android:为按钮覆盖 onKeyListener 的问题

当在按钮上按下 Enter 键时,我想要某种功能。当我重写 onKey() 时,我编写了要为 KEY_ENTER 执行的代码。这工作正常。

但是现在没有其他键适用于按钮,例如向上、向下箭头键等。我知道这是因为我只为 ENTER 覆盖了 onKey()。

但是有没有一种方法可以保留所有其他键的功能并仅覆盖某些特定键?

注意:这一切都是因为按下 Enter 键时没有调用我的 onClick() 。因此,我需要覆盖 onKey() 本身。

- 琪琪