Java 如何学习Swing击键处理的内部内容

Java 如何学习Swing击键处理的内部内容,java,swing,look-and-feel,key-bindings,keystroke,Java,Swing,Look And Feel,Key Bindings,Keystroke,Swing可能是一种令人沮丧的野兽。特别是当您试图用它设计一个应用程序时,它与Swing设计者在设计Swing时使用的假设“背道而驰”。我们有一些需求,这些需求将功能分配给了超出正常范围的击键。昨天的问题是,JComboBox和JScrollPane考虑了像PageUp和PageDown这样的键“导航键”,并抓住了它们,尽管我们试图在这些组件有焦点时将它们重新映射到其他用途。你可能会说,这是糟糕的设计,但这是我们的要求。甚至还有一种特殊的键盘,上面有标签标明这些功能的重新映射,我们必须满足这些要

Swing可能是一种令人沮丧的野兽。特别是当您试图用它设计一个应用程序时,它与Swing设计者在设计Swing时使用的假设“背道而驰”。我们有一些需求,这些需求将功能分配给了超出正常范围的击键。昨天的问题是,
JComboBox
JScrollPane
考虑了像PageUp和PageDown这样的键“导航键”,并抓住了它们,尽管我们试图在这些组件有焦点时将它们重新映射到其他用途。你可能会说,这是糟糕的设计,但这是我们的要求。甚至还有一种特殊的键盘,上面有标签标明这些功能的重新映射,我们必须满足这些要求。这就是生活

今天,又出现了另一个问题,一个
JTextPane
似乎在它有焦点时抓住了F6键。当其他组件有焦点时,这不是问题。WTF

因此,我的问题很简单:是否有任何文档说明每种类型的Swing组件在正常的
InputMap/ActionMap
系统之外捕获和放置了什么样的击键,这是敦促应用程序级程序员遵循的?我知道这进一步取决于
外观和感觉
,在
Motif
中发生的事情可能与在
金属
中发生的事情不同,等等。尽管如此,即使深入到这个层次,这些东西在哪里都有记录?我想知道这一点,这样我就可以在一开始就知道我的问题在哪里,而不是一次一次地学习这一点。如果我知道问题在哪里,我就知道如何解决它们。但是我有源代码、java文档,我不知道该去哪里找。

这篇文章链接到相关教程并展示了一个示例

是否有任何文档说明每种类型的Swing组件在正常的InputMap/ActionMap系统之外捕获和放置了哪些按键,并敦促应用程序级程序员遵循这些按键

没有我知道的文档


也许这个列表会帮你解决问题。

对不起,这是新手级别的基本资料。你看过我的问题了吗?谢谢!这正是我需要的。我最喜欢的工具之一。