Of course, if you specify a selection mode, you presumably want a listener to take note of selection events. The following illustrates the view side of such a listener. Nothing happens on the model side; the listener only prints the range of the selected rows. Such a methodwhich extends part way, but not all the way, toward useful workis called a stub.
The listener implements ListSelectionListener
, which requires a
valueChanged
definition, which is called by the machinery that
watches for list-selection events. The list-selection model supplies
information about the selected range. The getValueIsAdjusting
call
ensures that nothing happens until you have completed your selection
operation by releasing your mouse button.
import javax.swing.*; import javax.swing.event.*; public class MovieRowSelectionListener implements ListSelectionListener { private MovieTableApplication application; public MovieRowSelectionListener (MovieTableApplication a) { application = a; } public void valueChanged (ListSelectionEvent e) { if (!(e.getValueIsAdjusting())) { ListSelectionModel lsm = application.getRatingTable().getSelectionModel(); System.out.println("Selected range boundaries are " + lsm.getMinSelectionIndex() + " and " + lsm.getMaxSelectionIndex()); } } }