【发布时间】:2016-08-07 10:42:51
【问题描述】:
我找不到关于所有这些之间关系的简明答案,因此我可以选择最佳实践并继续前进。 JTextComponent 有:
旧的
addKeyListener(..)。我们编写了一个KeyListener,其中包含在keyPressed(..)、keyTyped(..)等事件上调用的方法,我们可以查询:event.getKeyCode()。addKeymap(..)和setKeymap(..)。一个Keymap有一个addActionForKeyStroke(..),它接受一个KeyStroke(我们可以通过调用KeyStroke指定字符或键码的静态方法得到)和一个Action,这是一个ActionListener花里胡哨。getInputMap(..)和getActionMap(..)。InputMap将KeyStroke(如上)映射到String,ActionMap将字符串映射到Action(如上)。 Java 教程How to use key bindings 谈到了这一点。
这是实现相同功能的三种冗余方式。除了比较优势/劣势之外,这引发了一个自然问题,即这三种机制如何共存?哪些优先于其他?
【问题讨论】:
-
4 次投反对票,没有一条评论。我将此解释为“您应该花一个小时阅读而不是询问,因为这些信息可以在 Internet 上获得”。好吧,好吧,但不是在一个简洁的页面上。该网站的重点是将重点聚集在一起,避免为了回答一个问题而费力地翻阅几十个不相关的页面。
-
是的,为什么不呢,这是一个众说纷纭的公共论坛,部分阴影命令是在 UIManager 中实现的(标准快捷方式,你可能知道 fom/in Windows OS)
标签: java swing keylistener key-bindings jcomponent