Handling Selections
The JList class in
Swing depends on a second model, this one to monitor the elements that
have been selected by the user. As with the list data model, the
programmer is given many places in which standard behavior can be
altered or replaced when dealing with selections. Swing uses a simple
interface for models that handle list selections (ListSelectionModel) and provides a default
implementation (DefaultList-SelectionModel).
The ListSelectionModel Interface
The ListSelectionModel interface outlines the
methods necessary for managing list selections. Selections are
represented by a series of ranges, where each range is defined by its
endpoints. For example, if the elements One, Two, Three, Six, Seven,
and Nine were selected in the opening example of the chapter, the list
selection model would contain three entries that specified the ranges
{1,3}, {6,7}, and {9,9}. All selection indices are zero-based, and the
ranges are closed, meaning both endpoint indices are included within
the selection. If only one element is present in a range, such as with
Nine, both endpoints are identical.
Properties
Table 7-5 shows
the properties of the ListSelectionModel interface. The first
four properties of the list selection model can be used to retrieve
various indices that are currently selected in the list. The
anchorSelectionIndex and leadSelectionIndex properties represent
the anchor and lead indices of the most recent range of selections,
as illustrated in Figure
7-2. The ...