我正在制作一个需要在Linux和Windows上运行的Java SWT程序。
我使用以下代码来侦听KeyUp事件:
Control.addListener(SWT.KeyUp, new Listener() {
public void handleEvent(Event arg0) {
System.out.println("Event");
}
});
但是当没有控件具有焦点时,这不会触发。
有人知道我可以添加一个充当Catch-all的监听器吗?
答案 0 :(得分:1)
我所知道的唯一方法是在显示屏上放置过滤器。请注意,多个外壳可能在一个显示器上运行,因此您应该小心!
shell.getDisplay().addFilter(SWT.KeyDown, new Listener() {
public void handleEvent(final Event event) {
System.out.println(event);
}
});
答案 1 :(得分:0)
在Display类中尝试以下方法:
public void addListener ( int eventType, Listener listener )
答案 2 :(得分:-1)
我一直无法找到解决方法。我怀疑不存在