java - 在 Eclipse 中禁用 TreeViewer 的 Alt+Enter

标签 java eclipse tree swt workbench



我在 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/

相关文章:

java - 调试 Junit 时,Eclipse 中未命中断点

java - 添加了 GoogleAPI,但 MapActivity 变得不可见

Eclipse - 目标运行时 Apache Tomcat v7.0 未定义

c++ - 实现树结构最安全的方法是什么?

r - 无法将 mothur 树导入 R

java - 如何使用数组中的字段对ElasticSearch索引进行排序?

java - 带有 netty 服务器 (SSLSocket) 的 Android 客户端

java - 取消覆盖 hashCode

java - 需要帮助理解内部 try catch 和外部 try catch

c++ - 确定性句柄分配算法