我想要一些复合范围的键盘快捷键。有问题的复合 Material 位于选项卡文件夹中。我有一个小函数,它遍历我的组合的所有子项并为每个子项添加一个 KeyboardAdapter。
我遇到的问题是,当我打开其中一个选项卡时,按下的键没有注册。我首先将焦点设置在选项卡中的一些可选小部件上,然后它就可以工作了。当我切换到另一个选项卡然后返回时,焦点仍然在那里(例如,灰色选择而不是表格中的蓝色选择),但它再次不起作用,直到我点击某个地方。
我该怎么做?我考虑过在我的显示中添加一个过滤器,但我只想要某个组合中的事件(以及其中的所有内容)。
谢谢
最佳答案
键事件被传送到具有键盘焦点的组件。复合 Material 不会获得键盘焦点,通常是它们的子组件之一获得键盘焦点,然后它们开始接收键事件(以防 child 不使用它们)。在父 Shell 上设置关键监听器可能会起作用。
关于java - SWT:Composite 上的 addFilter 或 addKeyListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570919/