SWT Jface Eclipse Java

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Shell;
/**
 * @author Steven Holzner
 * 
 */
public class SWTListExampleDemo {
  public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setText("List Example");
    shell.setSize(300, 200);
    shell.setLayout(new FillLayout(SWT.VERTICAL));
    final List list = new List(shell, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
    for (int loopIndex = 0; loopIndex < 100; loopIndex++) {
      list.add("Item " + loopIndex);
    }
    list.addSelectionListener(new SelectionListener() {
      public void widgetSelected(SelectionEvent event) {
        int[] selections = list.getSelectionIndices();
        String outText = "";
        for (int loopIndex = 0; loopIndex < selections.length; loopIndex++)
          outText += selections[loopIndex] + " ";
        System.out.println("You selected: " + outText);
      }
      public void widgetDefaultSelected(SelectionEvent event) {
        int[] selections = list.getSelectionIndices();
        String outText = "";
        for (int loopIndex = 0; loopIndex < selections.length; loopIndex++)
          outText += selections[loopIndex] + " ";
        System.out.println("You selected: " + outText);
      }
    });
    shell.open();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch())
        display.sleep();
    }
    display.dispose();
  }
}