向TitleAreaDialog添加一个Key Listener

Goo*_*eed 0 java swt jface keylistener eclipse-rcp

我需要为我添加一个关键的监听器TitelAreaDialog是否有任何解决方案可以做到这一点?

Baz*_*Baz 6

您可以使用以下命令添加ListenerDisplay:

Listener listener = new Listener() {
    public void handleEvent(Event event) {
        System.out.println(event.character);
    }
}
getShell().getDisplay().addFilter(SWT.KeyDown, listener);
Run Code Online (Sandbox Code Playgroud)

这将输出所有按下的键而不消耗事件,即底层小部件仍将注册事件.


请记住在以下close()方法中再次删除它Dialog:

@Override
public boolean close()
{
    getShell().getDisplay().removeFilter(SWT.KeyDown, listener);
    super.close();
}
Run Code Online (Sandbox Code Playgroud)