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

比较KeyListener和Key Binding之间的功能

贺运良
2023-03-14
问题内容

当匿名用户对涉及KeyListeners的我的回答不满意并建议使用Key
Bindings时,出现了这个问题。这个匿名用户告诉我KeyListener接口是一个旧的AWT解决方案,不应使用。

但是,我不知道我是否应该完全信任该信息。我已经在包括oracle在内的各种网站上进行了研究,但没有发现关于KeyListeners或Key
Bindings的功能。我知道两个人执行相似的任务这一事实,但是可以肯定地说,“幕后”到底发生了什么。

我有点倾向于在将来的项目中使用键绑定,因为我获得的研究表明,KeyListener接口要求有问题的组件具有焦点,而键绑定则没有。但是,我很困惑。为什么会这样呢?按键绑定与按键侦听器的触发方式有何不同?

PS 我很确定这是罕见的,但是在某些情况下使用KeyListeners更合适吗?


问题答案:

如何使用键绑定说明了基础知识。

绑定用于将特定的动作映射到特定的KeyStroke。

当所有其他抽象都不起作用时,KeyListener是最后的选择。也许在侦听任何KeyStroke时会使用KeyListener。因此为字母表的所有字母创建26个绑定是不切实际的。

但是在很多情况下,还是有更好的API可以使用。例如,不是在文本字段上侦听KeyEvent,而是使用DocumentListener侦听对文档的更改。



 类似资料:
  • 本文向大家介绍C#和.NET Framework之间的比较,包括了C#和.NET Framework之间的比较的使用技巧和注意事项,需要的朋友参考一下 C#是一种编程语言,.NET框架是由Microsoft开发的软件框架。 .NET具有公共语言运行库(CLR),它是.NET框架的虚拟组件。框架是一大类库。 .NET不仅具有C#,而且还具有C#,您可以使用VB,F#等。为.NET Framework

  • 当有一个已定义的长值时,这种方法可以很好地工作。但是,当为null时,我不会得到结果。似乎运算符不能比较空值。 我尝试在子句中使用,但如果MAX结果为null,并且以下查询同时返回MAX Long值和null值,则只希望实体具有null值: 如何选择具有最大值的实体,或者如果没有设置,则获取为空的实体?

  • 问题内容: 如何为主要特征比较,以及包管理器?以及如何使用或的那些功能? 这主要可以帮助某人从JavaScript开发人员过渡到python开发人员。 我从未使用过rubygems,但将其主要功能与主要的python包管理器进行比较可能也很有用。帮助任何来自红宝石背景的人。 问题答案: Feature \ Package Manager npm pip pipenv poetry Access t

  • 问题内容: 对于我正在开发的应用程序,nodejs需要验证PHP创建的哈希,反之亦然。 问题是,在node.js中测试时,PHP中生成的哈希(通过仅使用PHP 函数的Laravel 类)返回false。 以下node.js脚本: 输出:“ PHP失败的nodejs通过”,而以下PHP脚本: 输出“ PHP通过的nodejs通过的”。 我已经在Ubuntu 14.04.1中使用PHP 5.5.18,

  • 问题内容: 我是一名Web开发人员,我想将Web产品移至iPhone。其中一种产品类似于GoogleMaps:在手机屏幕上显示地图,您可以拖动或调整地图大小并查看我们添加到地图中的一些信息。 还有其他类似的产品吗?它们之间有什么区别?我应该选择哪一个? 问题答案: 罗里·布莱斯(Rory Blyth)的答案包含有关两个JavaScript移动框架的一些有效观点。但是,他的要点是不正确的。事实是Ti

  • 问题内容: 假设我有包含以下字段的文档: 我需要运行一些查询,其中某些条件将需要在两个或多个字段之间进行比较。喜欢 在标准SQL中,一个示例可能是: 我正在阅读一些文档,看起来“脚本”可能是实现此目的的唯一方法?还是还有其他选择? 问题答案: 您可以使用脚本过滤器- 您可以在此处和此处找到更多信息。