Java Code:
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();
  }
}