9.16. Adding Check Marks to Table Items

Problem

You want to enable the user to select individual items in your SWT table widgets.

Solution

When you create your table, use the SWT.CHECK style. To determine if an item has been checked, you can use the getChecked method, which returns true if the item is checked.

Discussion

After you’ve added check marks to a table, you can determine which items have been checked with the table’s getSelection method, which returns an array of the selected TableItem objects; with getSelectionIndex, which returns the index of the currently selected item; or with getSelectionIndices, which returns an int array of the indices of the selected items in a multiple-selection table. To see if an individual table item is checked, call its getChecked method or use setChecked to explicitly check it.

For example, here’s how to create a table with check boxes:

Table table = new Table(shell, SWT.CHECK | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);

You can determine if a newly clicked item has been checked by looking at the detail member of the Event object passed to us in the handleEvent method:

table.addListener(SWT.Selection, new Listener( )
{
    public void handleEvent(Event event)
    {
        if(event.detail == SWT.CHECK){
            text.setText("You checked " + event.item);
        } else {
            text.setText("You selected " + event.item);
        }
    }
});

The results appear in Figure 9-11. As you can see, the application indicates which table item you’ve checked.

Figure 9-11. A table with check marks

See Also

Recipe ...

Get Eclipse Cookbook 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.