SWT Java Tutorial

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
public class DisplayFilterEvent {
  public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("Left click your mouse");
    shell.setSize(200, 100);
    shell.open();
    shell.addListener(SWT.MouseDown, new SimpleListener("Shell mouse down listener"));
    display.addFilter(SWT.MouseDown, new SimpleListener("Display mouse down Listener"));
    display.addFilter(SWT.MouseUp, new SimpleListener("Display mouse up Listener"));
    shell.open();
    while (!shell.isDisposed()) { // Event loop.
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}
class SimpleListener implements Listener {
  String name;
  public SimpleListener(String name) {
    this.name = name;
  }
  public void handleEvent(Event e) {
    System.out.println("Event: [" + e.toString() + "] from " + name
        + ". \tCurrent Time (in ms):  " + System.currentTimeMillis());
  }
}