The Event Model : SWT Event « SWT « Java Tutorial

  1. SWT uses the observer design pattern based event model.
  2. Multiple listeners can be registered to be notified.
  3. In SWT, only Widgets and Displays can have event listeners.

The following code demonstrates usage of a listener:

The Event Model
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class EventModelPattern {
  static Display display = new Display();

  public static void main(String[] args) {
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());

    Button button = new Button(shell, SWT.PUSH);
    button.setText("push me");
    button.addSelectionListener(new SelectionListener() {
      public void widgetDefaultSelected(SelectionEvent e) {

      public void widgetSelected(SelectionEvent e) {
        System.out.println("Button pushed.");
    while (!shell.isDisposed()) { // Event loop.
      if (!display.readAndDispatch())

17.89.SWT Event
17.89.2.The Event ModelThe Event Model
17.89.3.The listener notification processThe listener notification process
17.89.4.SWT provides two kinds of event listening mechanism: typed and untyped.SWT provides two kinds of event listening mechanism: typed and untyped.
17.89.5.Untyped Events and Untyped Event ListenersUntyped Events and Untyped Event Listeners
17.89.6.Introducing Untyped Listeners
17.89.7.Get event typeGet event type
17.89.8.implements general Event Listenerimplements general Event Listener
17.89.9.Introducing Typed Listeners
17.89.10.Typed Listeners
17.89.11.SWT Message Keys and Values
17.89.12.Using SelectionListenerUsing SelectionListener
17.89.13.Add Resize listener to ShellAdd Resize listener to Shell
17.89.14.Add addPaintListener to CompositeAdd addPaintListener to Composite
17.89.15.Add default selection listener to ComboAdd default selection listener to Combo
17.89.16.Using HelpListenerUsing HelpListener
17.89.17.Demonstrate DisposeListener which is notified on the associated widget's disposal
17.89.18.Using ControlListenerUsing ControlListener
17.89.19.Using FocusListenerUsing FocusListener
17.89.20.Using VerifyListenerUsing VerifyListener
17.89.21.Using ModifyListenerUsing ModifyListener
17.89.22.Adding AccessibleListenerAdding AccessibleListener
17.89.23.Adding AccessibleControlListenerAdding AccessibleControlListener
17.89.24.Add and remove filter listenersAdd and remove filter listeners