Display.getDefault()。addFilter()不适用于SWT.ARROW_LEFT和SWT.ARROW_RIGHT

时间:2013-03-28 12:45:05

标签: java swt

我有一个用SWT编写的Eclipse插件项目。我添加了一个全局侦听器来收听键SWT.ARROW_LEFTSWT.ARROW_RIGHT。这是通过Display.getDefault().addFilter()方法完成的。这在大多数情况下都可以正常工作。但是我在面板中有一组按钮,当按钮有焦点时,按下SWT.ARROW_LEFTSWT.ARROW_RIGHT键不会触发相应的事件,它只是在这组键之间移动。有没有人知道如何克服这个问题?感谢。

Display.getDefault().addFilter(SWT.ALL, new Listener() {
            @Override
            public void handleEvent(Event event) {
                if ((event.keyCode == SWT.ARROW_LEFT) || (event.keyCode == SWT.ARROW_RIGHT)) {
      }
   }
});

1 个答案:

答案 0 :(得分:0)

使用TransverseEvent解决问题并将doit字段设置为false。