java - SWT/JFace : How to handle Keyevents for each ViewPart or Form?

标签 java event-handling swt eclipse-rcp jface

我正在构建一个 Eclipse 应用程序,我正在尝试创建一个快捷方式以在按 F5 时启动一个操作,并在该 Tab 时将其设为默认操作/ViewPart有重点。

我读到这是不可能的,或者非常复杂。有什么简单/直接的方法吗?

我试过:

Display.getCurrent().addFilter(...)
this.addKeyListener(new KeyAdapter() {...})

...

在构造函数中做这个是我最好的:

this.getShell().addKeyListener(new KeyAdapter() {
    public void keyPressed(KeyEvent e) {
        if(e.keyCode == SWT.F5) {
            //doAnything()
        }
    }
});

这在加载时不起作用,但如果我从这个切换到另一个 View/Tab开始工作。但是当其他人有焦点(我不想要)时它也有效。

有没有办法在一开始就进行这项工作,并且只有当焦点位于 View 时才进行? ?

最佳答案

您应该在 handler 中定义工作& 然后应该使用本例中给出的键绑定(bind)。你可以找到一个很好的例子here .希望它能解决您的需求。

关于java - SWT/JFace : How to handle Keyevents for each ViewPart or Form?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13074311/

相关文章:

java - JFace ContentProposalAdapter 在无效位置显示弹出窗口

java - 如何显示所有字段?

java - Java中不重复的随机数生成

java - try/catch 性能 java 中不可抛出的代码

java - 将 Java 对象数组返回到 Coldfusion 组件

java - 如何更改 CTabItem 下划线的颜色?

java - JTable:检测单元格数据变化

jquery - 使用 jQuery 处理程序更好吗?

java - JComboBox 选择更改

java - 启用 Canvas SWT Draw2d 的滚动