我在 SWT 中的树中添加了一个键监听器,当我按下 Alt+Enter 时,键事件的状态是 keyCode = 65536 和 statemask = 0,而它应该是 keyCode ='\r' 和状态掩码=65536。
下面是我写的代码片段-
mViewer.getTree().addListener(SWT.KeyDown, new Listener() {
@Override
public void handleEvent(Event e) {
if(e.keyCode == SWT.CR && e.stateMask == SWT.ALT) {
e.doit = false;
}
}
});
Eclipse 工作台在将事件委托(delegate)给组件中的监听器之前过滤一些事件。有没有一种方法可以禁用 alt+enter 以不在其中一个树查看器上执行 eclipse 中的显示属性?
最好的问候, 凯沙夫
最佳答案
您可以通过多种不同的方式为特定的查看器覆盖特定的全局命令:
- 添加一个监听器以过滤掉键序列 - 尽管并非总是可行。
- 添加一个
Display
过滤器来执行相同的操作 - 可以在 Viewer 控件的焦点输入/焦点焦点处添加/删除过滤器。 - 向应用程序添加新上下文并覆盖新上下文所需的键绑定(bind) - 上下文在查看器控件的焦点输入/输出处激活/停用
我更喜欢最后一种解决方案,因为我可以使用普通绑定(bind)扩展点从任何插件覆盖查看器的特定键绑定(bind)...
关于java - 在 Eclipse 中禁用 TreeViewer 的 Alt+Enter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6423754/