Selecting Table Entries
All this, and all we can do is render and edit data in a
table. “What about selecting data?” you ask. Yes, we can do that, too.
And, as you might expect, the ListSelectionModel
(discussed in Chapter
7) drives us through these selections. Unlike most of the other
components, however, the two-dimensional JTable
has two selection models, one for rows
and one for columns.
Figure 15-8 shows an application that allows you to turn on and off the various selections allowed on a table (cell, row, and column). As you select different rows and columns, two status labels show you the indices of the selected items.
Figure 15-8. A table that lets you select rows, columns, or cells
Let’s look at the code for this example. Most of the work is
getting the interface you see running. Once that’s done, we attach our
two reporting labels as listeners to the row selection and column
selection models. The interesting part of the code is the ListSelectionListener
, written as an inner
class. This class tracks any ListSelectionModel
and updates a label with
the currently selected indices every time it changes. (Those indices are
retrieved using the getSelectedIndices(
)
method we wrote ourselves.) Since we rely on only the list
selection model, we can use the same event handler for both the row and
the column selections.
// SelectionExample.java // A simple multiplication table with the ...
Get Java Swing, 2nd Edition 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.