Swing 可能是一个令人沮丧的野兽。特别是如果您试图用它来设计一个与 Swing 设计者在设计 Swing 时使用的假设“背道而驰”的应用程序。我们的要求是将功能分配给非常规的击键。昨天,问题是 JComboBox
和 JScrollPane
将 PageUp 和 PageDown 之类的键视为“导航键”,并捕获了这些键,尽管我们尝试将这些组件重新映射到其他用途有焦点。你可能会说,这是糟糕的设计,但这是我们的要求。甚至有特殊的键盘带有指示这些功能重新映射的标签,我们必须满足这些要求。这就是生活。
今天,出现了另一个问题,即 JTextPane
似乎在获得焦点时捕获了 F6 键。当其他组件获得焦点时,这不是问题。搞什么?
所以,我的问题很简单:是否有任何文档说明每种类型的 Swing 组件在普通 InputMap/ActionMap
系统之外抓取和放置哪些击键,敦促应用程序级程序员遵循?我知道这进一步取决于 LookAndFeel
,并且 Motif
中发生的情况可能与 Metal
等中发生的情况不同。仍然,甚至深入到这个级别,这些东西是否记录在任何地方?我想知道这一点,这样我可能一开始就知道我的问题出在哪里,而不是一次学习这个。如果我知道问题出在哪里,我就知道如何解决它们。但我有源代码、java 文档,但我只是不知道去哪里看。
最佳答案
Is there any documentation on what keystrokes each type of Swing component is grabbing and placing outside the normal InputMap/ActionMap system that application level programmers are urged to follow?
据我所知,没有任何文档。
也许Key Bindings列表将为您提供帮助。
关于java - 如何了解 Swing 击键处理的内部原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526072/