-3

标题几乎概括了它。我是在程序中使用键盘的新手,想知道是什么让它们与众不同,哪个更易于使用等。

4

1 回答 1

3

KeyListener是 AWT 和 Swing 使用的原始机制,允许组件注册对关键事件的兴趣。它是一个低级 API,可提供有关按键事件的大量信息(如修饰符)。

由于多种原因,在大多数情况下不鼓励这种监视关键事件的方法。第一个事实是,为了让组件(通过此 API)接收键事件,它必须是可聚焦的并且具有当前键盘焦点。这是一个陷阱,99% 的问题都与此KeyListeners有关。

第二个与代码的外观有关,传统上,使用KeyListener将需要您有一个大的if-else声明,考虑到各种击键及其潜在的修饰符,随着时间的推移,这可能会变得很麻烦——同样的批评也可能会受到批评ActionListener

Key Bindings 是一个较新的 API(并且是更大的输入绑定 API 的一部分),可用于监视非常具体的键事件。这包括单个按键和修饰符。

Key Bindings 也使用Actions API,这意味着您可以Action在程序的许多不同部分重用它们,而无需每次都重新实现逻辑。

如何使用键绑定

键绑定的替代方法是使用键侦听器。按键侦听器作为键盘输入的低级接口有它们的位置,但对于响应单个按键,按键绑定更合适,并且往往会导致更容易维护的代码。如果要在组件没有焦点时激活键绑定,则键侦听器也很困难。键绑定的一些优点是它们在某种程度上是自我记录的,考虑到包含层次结构,鼓励可重用的代码块(Action 对象),并允许轻松删除、自定义或共享操作。此外,它们使更改绑定到动作的键变得容易。

于 2013-02-19T23:08:57.917 回答