SWT:Composite上的addFilter或addKeyListener

时间:2011-09-27 14:35:16

标签: java events swt keyboard-shortcuts listener

我想要一些复合宽的键盘快捷键。有问题的复合材料位于标签文件夹中。我有一个小函数,它遍历我的复合体的所有子节点,并为每个子节点添加一个KeyboardAdapter。

我遇到的问题是,当我打开选项卡时,按下的键没有注册。我首先将焦点放在选项卡中的一些可选小部件上,然后它可以工作。当我切换到另一个选项卡然后返回时,焦点仍然存在(例如灰色选择而不是表格中的蓝色选项),但它再次无效,直到我点击某处。

我该怎么做?我想过为我的显示器添加一个过滤器,但我只想要某个复合体中的事件(以及那里的所有东西)。

谢谢

1 个答案:

答案 0 :(得分:3)

将键事件传递给具有键盘焦点的组件。复合材料不会获得键盘焦点,它通常是其中一个子组件获取它,然后它们开始接收关键事件(如果它们不被儿童使用)。在父Shell上拥有密钥监听器可能会有效。