`
Jameslyy
  • 浏览: 409020 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SWT part 3 —— Event(事件)

阅读更多

        创建了一个display对象和一些用户界面部件,启动应用程序的消息循环,当有事件发生时,应用程序从消息队列中读取到事件并分发给部件。这就是SWT程序的运行机制。大部分应用程序的逻辑都是在处理用户事件。

 

        基本的模式是为小部件加上监听器(listener),当对应的事件被触发时,监听器就会被执行,下面是一个简单的列子:

   Display display = new Display ();
   Shell shell = new Shell (display);
   Label label = new Label (shell, SWT.CENTER);
   ...
   shell.addControlListener (new ControlAdapter () {
      public void controlResized (ControlEvent e) {
         label.setBounds (shell.getClientArea ());
      }
   });

        对于每一种监听器(listener),对应一个定义监听器的接口(XyzListener),一个提供事件信息的类(XyzEvent),和一个添加监听器的API方法(addXyzListener),如果监听器定义了多于一个的方法,会有一个实现了监听器接口的适配器(XyzAdapter),适配器提供了空方法。所有的这些事件(events)、监听器(listeners)和适配器(adapters)都定义在包org.eclipse.swt.events 中。

 

         事件可以分为两类,一类是高层事件,表示发生在控件上的逻辑操作,一类是底层事件,描述更为具体的用户交互动作,高层的事件可能是由多个平台相异的事件表示的,一般情况下,底层事件应该仅用于自定制的用户界面部件的实现中。

 

        下面列出了SWT中的事件类型:

High level Events:

Activate, Deactivate

Generated when a Control is activated or deactivated.

控件被激活或失去激活状态时产生的事件

Arm

A MenuItem is armed (highlighted and ready to be selected).

菜单项获得焦点时触发的事件

Close

A Shell is about to close as requested by the window manager.

关闭shell窗口触发的事件

DefaultSelection

The user selects an item by invoking a default selection action. For example, by hitting Enter or double clicking on a row in a Table.

当用户执行一个默认的选择动作是触发的事件,例如按下回车键或双击表格中的一行。

Dispose

A widget is about to be disposed, either programmatically or by user.

程序或者用户销毁小部件时触发的事件

DragDetect

The user has initiated a possible drag operation.

当用户做拖动操作触发的事件

EraseItem

A TableItem or TreeItem is about to have its background drawn.

绘制表格的行或这树的节点的背景时触发的事件

Expand, Collapse

An item in a Tree is expanded or collapsed.

展开或销毁树的节点时触发的事件

Help

The user has requested help for a widget. For example, this occurs when the F1 key is pressed under Windows.

用户请求帮助时触发的事件,例如在Windows系统中按下F1键。

Iconify, Deiconify

A Shell has been minimized, maximized, or restored.

最小化、最大化、恢复 shell窗口时触发的事件

ImeComposition

Allows custom text editors to implement in-line editing of international text.

允许定制文本编辑器实现行内编辑多国文本内容。

MeasureItem

The size of a custom drawn TableItem or TreeItem is being requested.

获取自定制的表格的行或树的节点的尺寸时触发的事件

MenuDetect

The user has requested a context menu.

用户请求上下文菜单时触发

Modify

The widget's text has been modified.

修改文本内容时触发

Move, Resize

A control has changed position or has been resized, either programmatically or by user.

通过程序或者用户直接移动控件位置,或改变控件大小时触发的事件,

Movement

An updated caret offset is needed in response to a user action in a StyledText.

指针偏移时触发

OpenDocument

The operating system has requested that a document be opened.

操作系统请求打开文档时触发

OrientationChange

The orientation of a Text control is changing.

文本控件改变方向时触发

PaintItem

A TableItem or TreeItem is about to have its foreground drawn.

改变表格的行或树的节点前景时触发

Selection

The user selects an item in the control. For example, by single clicking on a row in a Table or by keyboard navigating through the items.

用户选择控件的一个项时触发,例如点击表格中的一行,或者用键盘的方向键选择UI项时

SetData

Data needs to be set on a TableItem when using a virtual table.

为控件设置数据时触发

Settings

An operating system property, such as a system font or color, has been changed.

操作系统属性,例如系统字体和颜色,发生变化是触发

Show, Hide

A control's visibility has changed.

控件显示状态发生变化时触发

Traverse

The user is trying to traverse out of the control using a keystroke. For example, the escape or tab keys are used for traversal.

使用escape键改变状态时 或 使用tab键使得控件焦点发生变化时触发的事件

Verify

A widget's text is about to be modified. This event gives the application a chance to alter the text or prevent the modification.

当修改文本框的内容时,这个事件使得应用程序有机会能够修改文本内容或阻止内容的修改。

 

Low level events:

FocusIn, FocusOut

A control has gained or lost focus.

控件获得或失去焦点时触发的事件

KeyDown, KeyUp

The user has pressed or released a keyboard key when the control has keyboard focus.

控件拥有键盘焦点,同时用户按下或释放键盘键时触发的事件

MouseDown, MouseUp, MouseDoubleClick

The user has pressed, released, or double clicked the mouse over the control.

用户在控件上按下、释放或双击鼠标时触发的事件

MouseMove

The user has moved the mouse above the control.

用户在控件上移动鼠标时触发的事件

MouseEnter, MouseExit, MouseHover

The mouse has entered, exited, or hovered over the control.

鼠标进入、离开或悬浮在控件上时触发的事件

MouseHorizontalWheel, MouseVerticalWheel, MouseWheel

The mouse wheel has been rotated.

鼠标滚轮滚动时触发的控件

Paint

The control has been damaged and requires repainting.

控件重绘时触发的事件

 

附:

参考:http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/swt_widgets_events.htm

 

 

分享到:
评论

相关推荐

    SWT JFace 按键、事件、监听

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

    SWT_AWT_Swing事件处理机制

    SWT事件类通常包含处理事件所需的所有信息,而监听器接口只有一个`handleEvent(Event)`方法,这个方法会接收到所有类型的事件。因此,在SWT中处理事件通常需要在`handleEvent`方法内根据事件类型进行判断。 对比三...

    SWT事件一览表

    #### ControlEvent:控件事件 - **监听器和适配器**:`ControlListener`和`ControlAdapter` - **监听器中的方法**: - `controlMoved()`: 当控件的位置发生改变时触发。 - `controlResized()`: 当控件的大小发生...

    swt form

    3. 布局管理:SWT提供了多种布局管理器来控制组件在表单中的位置和大小,这对于创建美观且适应不同屏幕尺寸的界面至关重要。 4. 事件处理:SWT支持事件驱动编程,用户可以通过监听和处理事件(如按钮点击、文本更改...

    swt事件处理的编码实现

    3. **组件选择事件**: 虽然在提供的代码中没有直接涉及到组件选择事件,但SWT提供`SelectionListener`接口来处理这种事件。例如,如果有一个`Button`或`ComboBox`,我们可以监听用户对其的选择,然后执行相应的...

    Eclipse SWT JFace核心应用 PDF.part3 of 3

    第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的应用。第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,...

    swt table 实现换行

    在这个事件处理器中,我们同样获取 TableItem 的文本内容,并使用 `event.gc.drawText(text, event.x, event.y + offset2, true)` 方法将其绘制到 TableItem 上。`offset2` 的计算是为了使得文本在垂直方向上居中...

    java SWT用户注册,带事件

    Java SWT用户注册源代码,带事件处理.

    SwtDesigner3

    SwtDesigner3SwtDesigner3SwtDesigner3SwtDesigner3SwtDesigner3SwtDesigner3SwtDesigner3

    Eclipse SWT JFace核心应用 PDF.part1 of 3

    第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的应用。第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,...

    Eclipse SWT JFace核心应用 PDF.part2 of 3

    第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的应用。第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,...

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

    此外,SWT还支持事件处理、布局管理以及对话框等特性,使得开发者可以方便地构建复杂的用户界面。 为了在64位Java环境中使用这个库,开发人员需要确保他们的Java开发环境(JDK)也是64位的,因为32位的JDK无法识别...

    swt工具文档 swt工具文档

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

    java swt自定义控件

    SWT定义了一系列事件类型,如`SWT.Paint`、`SWT.MouseClick`等。 ```java @Override public void addListener(int eventType, Listener listener) { super.addListener(eventType, listener); // 根据eventType...

    SWT教程java开发文档

    **SWT教程——Java开发中的图形用户界面设计** SWT(Standard Widget Toolkit)是Java编程环境中用于构建桌面应用程序的一种GUI库。它由Eclipse基金会维护,是Eclipse IDE的基础组件之一,提供了丰富的用户界面控件...

    IBM GUI库SWT教程

    5. **Paint Event**:当需要更新界面时,SWT会触发Paint Event。开发者可以重写`paint`方法来绘制自定义内容。 ### SWT进阶 1. **Drag and Drop**:SWT支持拖放操作,允许用户通过鼠标将数据从一个地方移动到另一...

    [原创]SWT 深入内幕之消息机制探秘

    4. **EventTable**:SWT的EventTable是事件管理的核心,它存储了事件监听器并处理事件分发。UI组件可以通过addXXListener方法将监听器添加到EventTable,从而接收事件。 5. **CustomPaint**:对于自定义绘制的需求...

    SWT源码 swt.jar

    4. 良好的事件处理机制:SWT支持事件驱动编程,允许开发者响应用户的操作。 5. 跨平台:虽然SWT依赖于特定操作系统的库,但Eclipse项目提供了多个平台的版本,如Windows、Linux、Mac OS等。 在"swt-3.7.2-win32-win...

    swt designer6.9.5 破解版 for eclipse3.5 part4

    swt designer 6.9.5 part4 of part4介绍见part1

Global site tag (gtag.js) - Google Analytics