Sets the lead selection index, ensuring that values between the
anchor and the new lead are either all selected or all deselected.
If the value at the anchor index is selected, first clear all the
values in the range [anchor, oldLeadIndex], then select all the values
values in the range [anchor, newLeadIndex], where oldLeadIndex is the old
leadIndex and newLeadIndex is the new one.
If the value at the anchor index is not selected, do the same thing in
reverse selecting values in the old range and deslecting values in the
new one.
Generate a single event for this change and notify all listeners.
For the purposes of generating minimal bounds in this event, do the
operation in a single pass; that way the first and last index inside the
ListSelectionEvent that is broadcast will refer to cells that actually
changed value because of this method. If, instead, this operation were
done in two steps the effect on the selection state would be the same
but two events would be generated and the bounds around the changed
values would be wider, including cells that had been first cleared only
to later be set.
This method can be used in the mouseDragged
method
of a UI class to extend a selection.
See Also:
DefaultListSelectionModel.getLeadSelectionIndex()
,
DefaultListSelectionModel.setAnchorSelectionIndex(int)
,