编程语言
首页 > 编程语言> > java – 比较KeyListeners和Key Bindings之间的功能

java – 比较KeyListeners和Key Bindings之间的功能

作者:互联网

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

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

我倾向于在未来的项目中使用Key Bindings,因为我获得的研究表明,KeyListener接口要求相关组件具有焦点而Key Bindings没有.但是,我很困惑.为什么会这样? Key Bindings的触发方式与KeyListeners的触发方式有何不同?

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

解决方法:

How to Use Key Bindings解释了基础知识.

绑定用于将特定操作映射到特定KeyStroke.

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

但在许多情况下,还有更好的API可供使用.例如,您可以使用DocumentListener来监听对Document的更改,而不是在文本字段上侦听KeyEvents.

标签:keylistener,java,swing,key-bindings
来源: https://codeday.me/bug/20190927/1823804.html