Tree Selections
After the tree is built and looks the way you want it to,
you need to start working with selections so it does something useful.
The JTree
class introduced many of
the selection manipulation methods already, but let’s take a closer look
at the model for selecting paths in a tree and the DefaultSelectionModel
provided in the javax.swing.tree
package. If you’re
comfortable with selection models, you probably won’t find anything
surprising here and may want to skip to Section 17.7.
Selections are based on rows or paths. It’s important to realize the distinction between a “row” and a “path” for trees. A path contains the list of nodes from the root of the tree to another node. Paths exist regardless of whether or not you plan to display the tree.
Rows, however, are completely dependent on the graphical display
of a tree. The easiest way to think about a row is to think of the tree
as a JList
object. Each item in the
list is a row on the tree. That row corresponds to some particular path.
As you expand and collapse folders, the number of rows associated with
the tree changes. It’s the RowMapper
object’s job to relate a row number to the correct path.
Depending on your application, you may find rows or paths more efficient. If your program deals mostly with the user object data, paths are a good choice. If you’re working with the graphical interface (automatically expanding folders and the like), rows may be more useful.
The RowMapper Interface
Tree selections make extensive ...
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.