
 
        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),