`
lggege
  • 浏览: 375501 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SWT 添加全局的监听

    博客分类:
  • RCP
阅读更多

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这么强大和危险,慎用!

分享到:
评论
8 楼 heshifk 2015-11-02  
我今天用这个也遇到了一个问题,当焦点在别的组件上面,也添加了快捷键,点击别的快捷键,执行完之后会自己执行焦点对应的组件
7 楼 wuzijingaip 2011-12-06  
不是系统热键啊!!!
6 楼 foohsinglong 2010-12-07  
为什么我一定要在eclipse里面才能用?要把界面话出来吗?
5 楼 lggege 2009-06-04  
注意:
    由于是添加到Display的监听, 一定要记得removeFilter.
4 楼 shijiyu 2009-04-10  
但是 如果把焦点从这个Display移开的话好像就监听不到了也 我觉得这个与系统热键有点关系
3 楼 xykpermit 2008-12-12  
。。。
“正由于Display的Filter这么强大和危险,慎用!”,这行字好小,就像香烟盒上的“吸烟有害健康”一样。。。。
非常感谢lggege
2 楼 zhangcheng 2008-12-12  
我也学到东西了
1 楼 lformat 2008-12-03  
不错,又学到东西了

相关推荐

    SWT JFace 按键、事件、监听

    ### SWT JFace 按键、事件、监听 #### 概述 SWT(Standard Widget Toolkit)是Eclipse平台下的图形界面开发工具包,而JFace则是基于SWT之上的高级用户界面工具集。SWT提供了低级别的组件,用于创建跨平台的图形...

    SWT增删改查

    在SWT中,事件监听通常通过实现`org.eclipse.swt.events.Listener`接口或使用匿名内部类来完成。 5. 获取数据下标作为ID: 在描述中提到,此示例使用数据行的下标作为ID进行操作。这可能意味着在表格中,每一行有一...

    swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位

    开发者需要64位的Java环境,并将“swt-64.jar”添加到类路径中,以便在他们的应用中使用SWT。通过使用SWT,他们可以创建出既美观又响应迅速的桌面应用,这些应用能够无缝地融入用户的64位Windows环境。

    swt工具文档 swt工具文档

    5. **Event和Listener**: SWT事件模型基于事件和监听器。事件是用户与GUI交互时发生的行为,如点击按钮或改变文本;监听器是注册在Widget上以响应这些事件的代码。 **SWT的主要特点** 1. **原生外观**: SWT通过...

    swt 监控代码资料

    3. SWT事件和监听器:在SWT中,事件处理是通过添加监听器到组件上实现的。例如,ButtonListener可以监听按钮的点击事件,SelectionListener可以监听多种类型的选中事件。开发者可以通过实现相应的接口或者继承特定的...

    SWT内存泄露解决办法

    3. **避免全局变量和静态变量持有 SWT 对象**:全局和静态变量的生命周期很长,可能导致对象长时间保持在内存中。尽量避免使用,或者在不再需要时手动置为 null。 4. **谨慎处理图像资源**:图像加载后应妥善处理,...

    SWT的简单实例

    你可以为每个组件添加事件监听器,如`addSelectionListener`、`addModifyListener`等。当用户进行特定操作时,监听器会触发相应的事件处理器方法,你可以在此方法中编写处理逻辑。 4. **显示窗口**: 最后,调用...

    SWT配置 SWT配置 SWT配置 SWT配置 SWT配置

    在任何基于SWT的Java项目中,首要任务就是将SWT JAR文件添加到项目的Classpath中。这一步骤确保了编译器能够识别SWT类和方法。具体操作如下: - **创建Java项目**:首先,在IDE中创建一个新的Java项目。 - **指定...

    SWT widgets基本教程

    - 添加监听器: ```java button1.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { System.out.println("Button clicked."); } }); ``` ##### ...

    SWT源码 swt.jar

    通过添加这个jar到项目的类路径,开发者就可以在他们的程序中使用SWT组件,如按钮、文本框、树视图等。 描述中提到的"src.zip"文件包含的是SWT的源代码,这对于开发者进行调试、学习和定制SWT行为至关重要。源代码...

    SWT Table单元格编辑功能

    这可以通过添加`SWT.MouseDown`监听器实现: ```java tablePrice.addListener(SWT.MouseDown, new Listener() { public void handleEvent(Event event) { // 获取鼠标点击位置 Point pt = new Point(event.x, ...

    swt教程 有关SWT怎么应用

    3. **配置构建路径**:在Eclipse项目中,需要将SWT库的JAR文件添加到构建路径中,以便编译和运行时能正确引用。 4. **编写代码**:创建一个新的Java类,例如HelloSWT.java,导入必要的SWT包,然后编写显示GUI组件的...

    java swt自定义控件

    可以通过重写`addListener(int eventType, Listener listener)`方法来添加监听器。SWT定义了一系列事件类型,如`SWT.Paint`、`SWT.MouseClick`等。 ```java @Override public void addListener(int eventType, ...

    swt-界面设计

    5. **添加事件监听器**:为Button添加监听器以响应用户的点击操作。 6. **显示界面**:调用Shell的`open()`方法显示整个界面。 ```java import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; ...

    swt table 实现换行

    首先需要创建一个 Table 控件并添加到容器中。 2. **设置 TableItem 的文本**: 为 TableItem 设置包含换行符(`\n`)的文本。 3. **注册监听器**: 使用匿名内部类创建 Listener 对象,并注册到 Table 控件上...

    SWT详细精解

    3. SWT事件与监听器: SWT使用事件驱动模型,事件包括按键、鼠标、焦点变化等。开发者可以通过添加Listener或Adapter实现对这些事件的响应。例如,ButtonListener可以处理按钮点击事件,MouseListener可以处理鼠标...

    swt的简单代码

    事件处理器是通过添加监听器(如SelectionListener、FocusListener)到组件来实现的。 4. Display与Shell:在SWT中,Display是整个GUI的顶级容器,所有的窗口(Shell)都必须在Display上创建。Shell代表应用程序的...

    SWT开发教程1

    以下是一个简单的SWT程序示例,创建一个窗口并添加一个按钮: ```java import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt....

    swt2.rarswt2.rarswt2.rarswt2.rarswt2.rar

    3. 事件处理:如何在SWT中添加事件监听器,处理用户的交互,如点击、键入等。 4. 布局管理:解释不同的布局策略,如填充布局、网格布局、表格布局等,以及如何根据需要调整窗口元素的排列。 5. SWT与JFace:JFace...

    SWT插件中文教程SWT常用方法

    此外,SWT还提供了事件处理机制,如监听器接口,如ControlListener、MouseListener和KeyListener等,使得开发者能够对用户的行为作出反应。例如,添加一个MouseListener到Button上,就可以在按钮被点击时执行特定的...

Global site tag (gtag.js) - Google Analytics