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这么强大和危险,慎用!
分享到:
相关推荐
### SWT JFace 按键、事件、监听 #### 概述 SWT(Standard Widget Toolkit)是Eclipse平台下的图形界面开发工具包,而JFace则是基于SWT之上的高级用户界面工具集。SWT提供了低级别的组件,用于创建跨平台的图形...
在SWT中,事件监听通常通过实现`org.eclipse.swt.events.Listener`接口或使用匿名内部类来完成。 5. 获取数据下标作为ID: 在描述中提到,此示例使用数据行的下标作为ID进行操作。这可能意味着在表格中,每一行有一...
开发者需要64位的Java环境,并将“swt-64.jar”添加到类路径中,以便在他们的应用中使用SWT。通过使用SWT,他们可以创建出既美观又响应迅速的桌面应用,这些应用能够无缝地融入用户的64位Windows环境。
5. **Event和Listener**: SWT事件模型基于事件和监听器。事件是用户与GUI交互时发生的行为,如点击按钮或改变文本;监听器是注册在Widget上以响应这些事件的代码。 **SWT的主要特点** 1. **原生外观**: SWT通过...
3. SWT事件和监听器:在SWT中,事件处理是通过添加监听器到组件上实现的。例如,ButtonListener可以监听按钮的点击事件,SelectionListener可以监听多种类型的选中事件。开发者可以通过实现相应的接口或者继承特定的...
3. **避免全局变量和静态变量持有 SWT 对象**:全局和静态变量的生命周期很长,可能导致对象长时间保持在内存中。尽量避免使用,或者在不再需要时手动置为 null。 4. **谨慎处理图像资源**:图像加载后应妥善处理,...
你可以为每个组件添加事件监听器,如`addSelectionListener`、`addModifyListener`等。当用户进行特定操作时,监听器会触发相应的事件处理器方法,你可以在此方法中编写处理逻辑。 4. **显示窗口**: 最后,调用...
在任何基于SWT的Java项目中,首要任务就是将SWT JAR文件添加到项目的Classpath中。这一步骤确保了编译器能够识别SWT类和方法。具体操作如下: - **创建Java项目**:首先,在IDE中创建一个新的Java项目。 - **指定...
- 添加监听器: ```java button1.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { System.out.println("Button clicked."); } }); ``` ##### ...
通过添加这个jar到项目的类路径,开发者就可以在他们的程序中使用SWT组件,如按钮、文本框、树视图等。 描述中提到的"src.zip"文件包含的是SWT的源代码,这对于开发者进行调试、学习和定制SWT行为至关重要。源代码...
这可以通过添加`SWT.MouseDown`监听器实现: ```java tablePrice.addListener(SWT.MouseDown, new Listener() { public void handleEvent(Event event) { // 获取鼠标点击位置 Point pt = new Point(event.x, ...
3. **配置构建路径**:在Eclipse项目中,需要将SWT库的JAR文件添加到构建路径中,以便编译和运行时能正确引用。 4. **编写代码**:创建一个新的Java类,例如HelloSWT.java,导入必要的SWT包,然后编写显示GUI组件的...
可以通过重写`addListener(int eventType, Listener listener)`方法来添加监听器。SWT定义了一系列事件类型,如`SWT.Paint`、`SWT.MouseClick`等。 ```java @Override public void addListener(int eventType, ...
5. **添加事件监听器**:为Button添加监听器以响应用户的点击操作。 6. **显示界面**:调用Shell的`open()`方法显示整个界面。 ```java import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; ...
首先需要创建一个 Table 控件并添加到容器中。 2. **设置 TableItem 的文本**: 为 TableItem 设置包含换行符(`\n`)的文本。 3. **注册监听器**: 使用匿名内部类创建 Listener 对象,并注册到 Table 控件上...
3. SWT事件与监听器: SWT使用事件驱动模型,事件包括按键、鼠标、焦点变化等。开发者可以通过添加Listener或Adapter实现对这些事件的响应。例如,ButtonListener可以处理按钮点击事件,MouseListener可以处理鼠标...
事件处理器是通过添加监听器(如SelectionListener、FocusListener)到组件来实现的。 4. Display与Shell:在SWT中,Display是整个GUI的顶级容器,所有的窗口(Shell)都必须在Display上创建。Shell代表应用程序的...
以下是一个简单的SWT程序示例,创建一个窗口并添加一个按钮: ```java import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt....
3. 事件处理:如何在SWT中添加事件监听器,处理用户的交互,如点击、键入等。 4. 布局管理:解释不同的布局策略,如填充布局、网格布局、表格布局等,以及如何根据需要调整窗口元素的排列。 5. SWT与JFace:JFace...
此外,SWT还提供了事件处理机制,如监听器接口,如ControlListener、MouseListener和KeyListener等,使得开发者能够对用户的行为作出反应。例如,添加一个MouseListener到Button上,就可以在按钮被点击时执行特定的...