Display 有这么一个方法:
public void addFilter (int eventType, Listener listener)
具体使用代码:
Display.getDefault().addFilter(SWT.KeyDown, new Listener() {
public void handleEvent(Event e) {
if ((e.stateMask == SWT.CTRL) && (e.keyCode == 'a')) {
System.out.println("XXXX");
}
}
});
上面的代码给Display添加一个Filter, 这个Filter监听Ctrl+a事件.
也就是给Display添加一个全局的监听.比如:上面的就是快捷键Ctrl+a.
这个Display的Filter很强大, 无论当前焦点在哪个控件上,都可以监听这个Ctrl+a的事件.
如果界面中还有其他的控件也监听这个快捷键的话, 那么这个Display中的监听会比其他控件的监听先执行.
正由于Display的Filter比其他的监听先执行, 所以, 还更强大的功能就是: 你可以在handleEvent中阻拦event的向下传递[通知其他的监听者], 或者, 任意修改event的属性.
正由于Display的Filter这么强大和危险,慎用!
分享到:
相关推荐
3. **避免全局变量和静态变量持有 SWT 对象**:全局和静态变量的生命周期很长,可能导致对象长时间保持在内存中。尽量避免使用,或者在不再需要时手动置为 null。 4. **谨慎处理图像资源**:图像加载后应妥善处理,...
这个包是用来进行java本身无法完成的鼠标全局监听的包,本项目提供了一个软件开发工具库,能够让您使用Java语言开发原生的Windows应用程序而不需要编写额外的JNI代码。 使用SWT Win32 Extension,您将不需要创建...
- SWT定义了一系列事件监听器接口,例如`SelectionListener`,这些接口定义了方法用于响应特定类型的消息。 - 当创建一个控件时,可以通过注册监听器来捕获特定类型的事件。 2. **消息包装**: - 对于每一条从...
4. 设置全局钩子:使用JNA的Platform类和`swt.win32.extension`中的函数,如SetGlobalHook,来安装全局键盘钩子。你需要提供钩子处理函数的指针,以及钩子类型(如WH_KEYBOARD_LL表示低级键盘钩子)。 5. 监听和处理...
3. **可扩展性**:SWT库可以通过插件进行扩展,添加新的控件或功能。 4. **数据绑定**:SWT支持数据绑定,可以方便地将模型数据与用户界面元素关联起来。 5. ** SWT/JFace**:JFace是基于SWT的一个抽象层,提供了...
SWT提供了`Display`和`Shell`对象,以及各种`Widget`,如`Button`, `Text`等,它们都有对应的事件处理机制,可以通过监听和响应这些事件来实现键盘和鼠标的控制。 在"Touch 控制鼠标 键盘 控制"这个标签中,我们...
1. ** SWT(Standard Widget Toolkit)和JFace**:Eclipse的UI构建基于SWT和JFace库,它们为创建对话框和向导提供了基础组件。 2. **Dialog类**:了解`Dialog`基类及其子类,如`MessageDialog`、`InputDialog`,用于...
4. **Preference Bindings**:使用SWT和JFace的数据绑定机制,开发者可以将用户界面元素与偏好设置关联起来,使得界面元素的更改能够自动反映到偏好存储中,反之亦然。 5. **Preference Change侦听器**:开发者可以...