Determining the Selected Item with Multiple Selections

More work is required when you deal with a multiple selection list. While you can still use getSelection( ) to return a string array populated with all the selected items, you must perform more processing to interact with any given single item.

How do I do that?

Example 7-3 demonstrates how to deal with multiple selected items returned from a call to getSelection().

Example 7-3. Working with multiple selection lists

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.*;

public class ListExample {
    
    Display d;
    Shell s;
    ListExample( )    {
        d = new Display( );
        s = new Shell(d);
        s.setSize(250,250);
        s.setImage(new Image(d, "c:\\icons\\JavaCup.ico"));
        s.setText("A List Example");
        final List l = new List(s, SWT.MULTI | SWT.BORDER);
        l.setBounds(50, 50, 75, 75);
        l.add("Item One");
        l.add("Item Two");
        l.add("Item Three");
        l.add("Item Four");
        l.add("Item Five");     
        final Button b1 = new Button(s, SWT.PUSH | SWT.BORDER);
        b1.setBounds(150, 150, 50, 25);
        b1.setText("Click Me");
        b1.addSelectionListener(new SelectionAdapter( ) {
               public void widgetSelected(SelectionEvent e) {
                   String selected[] = l.getSelection( );
                   for(int i = 0; i< selected.length; i++)
                   {
                       System.out.println(selected[i]);
                   }
               }
        });        
        s.open( );
        while(!s.isDisposed( )){
            if(!d.readAndDispatch( ))
                d.sleep( );
        }
        d.dispose( );
    }
}

In Example 7-3, a button is ...

Get SWT: A Developer's Notebook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.