(原文)http://www.eclipseworld.org/bbs/read.php?tid=1185
Display对象代表了程序级的SWT各个类和底层系统窗口连接的实现。Display类是和操作系统相关的,针对不同的系统,可能相应的会增加一些API。这里我们只讨论一些所有平台都适用的API。
一 般而言,每个程序都只需要一个,并且只有一个Display对象(这对于一些低级别窗口系统而言的限制)。创建Display对象的线程,默认情况,执行 事件循环,就是我们知道的用户接口线程。我们可以通过这个线程调用很多控件的方法。其他接近这些成员的线程都将导致一个 SWT.ERROR_THREAD_INVALID_ACCESS类型的异常。
这个类的最重要的任务之一就是事件处理机制。Display类维护着注册的事件监听器,从低级别操作系统的事件队列中读取事件,并将这些事件传递给相应的事件监听器来完成具体的实现。
SWT中的事件处理机制有两个级别。最低的级别,监听器通过Display对象将一个指明类型的事件注册。当相应的事件发生了,监听器的handleEvent()方法就被调用。虽然这个方法不是很文雅,但是效率非常高。在更高一个级别,EventListeners的类型实现通过不同的事件发生。不同的类通过实现EventListener的子接口来注册事件。这个系统更文雅,有粒度和面向对象的,但是对系统有更高的要求。
一般情况下,创建Display对象是的构造函数是没有参数的;也可以通过DeviceData来创建一个对象,这样对调试更有用。察看Table 3-1了解对Display构造函数的描述。
Table 3-1: Display 构造函数
Display对象代表了程序级的SWT各个类和底层系统窗口连接的实现。Display类是和操作系统相关的,针对不同的系统,可能相应的会增加一些API。这里我们只讨论一些所有平台都适用的API。
一 般而言,每个程序都只需要一个,并且只有一个Display对象(这对于一些低级别窗口系统而言的限制)。创建Display对象的线程,默认情况,执行 事件循环,就是我们知道的用户接口线程。我们可以通过这个线程调用很多控件的方法。其他接近这些成员的线程都将导致一个 SWT.ERROR_THREAD_INVALID_ACCESS类型的异常。
这个类的最重要的任务之一就是事件处理机制。Display类维护着注册的事件监听器,从低级别操作系统的事件队列中读取事件,并将这些事件传递给相应的事件监听器来完成具体的实现。
SWT中的事件处理机制有两个级别。最低的级别,监听器通过Display对象将一个指明类型的事件注册。当相应的事件发生了,监听器的handleEvent()方法就被调用。虽然这个方法不是很文雅,但是效率非常高。在更高一个级别,EventListeners的类型实现通过不同的事件发生。不同的类通过实现EventListener的子接口来注册事件。这个系统更文雅,有粒度和面向对象的,但是对系统有更高的要求。
一般情况下,创建Display对象是的构造函数是没有参数的;也可以通过DeviceData来创建一个对象,这样对调试更有用。察看Table 3-1了解对Display构造函数的描述。
Table 3-1: Display 构造函数
构造函数 | 描述 |
---|---|
public Display() | 创建一个新的Display对象,设置当前线程为用户接口线程。你会经常在程序中使用这个构造函数或者Display.getDefault()。 |
public Display(DeviceData data) | 创建一个新的Display对象,设置DeviceData为Display成员。使用DeviceData在某些低级别的调试和错误配置上。 |