The UI toolkits described in this section are used by the Eclipse IDE and plug-ins, and work equally well for RCP applications.
The Standard Widget Toolkit (SWT)
provides a completely platform-independent API that is tightly integrated with the operating system's native windowing environment. Java widgets actually map to the platform's native widgets. This gives Java applications a look and feel that makes them virtually indistinguishable from native applications. In cases where native function is not provided, the SWT emulates it in a manner in keeping with the platform's normal look and feel. This toolkit overcomes many of the design and implementation trade-offs that developers face when using the Java Abstract Window Toolkit (AWT) or Java Foundation Classes (JFC). AWT gives the least common denominator approach and is therefore functionally limited. JFC is more flexible, but because all widgets are painted by the toolkit, JFC always seems to have trouble precisely emulating a native look and feel.
The JFace toolkit
is a platform-independent user interface API that extends and interoperates with the SWT. This library provides a set of components and helper utilities that simplify many of the common tasks in developing SWT user interfaces. For example, it provides the dialogs, wizards, and rich text editors used by the Eclipse IDE. JFace also has tables and trees that utilize a model view controller (MVC) architecture to separate data access login from data display logic. JFace also provides the mechanisms by which plug-ins programmatically contribute to the workbench, which is further discussed in the next topic.
Lotus® Expeditor for Devices provides subsets of the full SWT and JFace widgets sets. It also provides Mobile Extensions which are particularly useful on devices.
Parent topic: Understanding the user interface: XPD622