The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
To detect when the user selects a node in a
tree, you need to register a tree selection listener. Here is an example, taken from the TreeDemo
example discussed in
Responding to Node Selection, of detecting node selection in a tree that can have at most one node selected at a time:
tree.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); /* if nothing is selected */ if (node == null) return; /* retrieve the node that was selected */ Object nodeInfo = node.getUserObject(); ... /* React to the node selection. */ ... } });
To specify that the tree should support single selection, the program uses this code:
tree.getSelectionModel().setSelectionMode (TreeSelectionModel.SINGLE_TREE_SELECTION);
The TreeSelectionModel
interface defines three values for the selection mode:
DISCONTIGUOUS_TREE_SELECTION
SINGLE_TREE_SELECTION
CONTIGUOUS_TREE_SELECTION
The TreeSelectionListener Interface
Because TreeSelectionListener
has only one method, it has no corresponding adapter class.
Method | Purpose |
---|---|
valueChanged(TreeSelectionEvent) | Called whenever the selection changes. |
Method | Purpose |
---|---|
Object getSource() (in java.util.EventObject ) |
Return the object that fired the event. |
TreePath getNewLeadSelectionPath() | Return the current lead path. |
TreePath getOldLeadSelectionPath() | Return the path that was previously the lead path. |
TreePath getPath() | Return the first path element. |
TreePath[] getPaths() | Return the paths that have been added or removed from the selection. |
boolean isAddedPath() | Return true if the first path element has been added to the selection. Returns false if the first path has been removed from the selection. |
boolean isAddedPath(int) | Return true if the path specified by the index was added to the selection. |
boolean isAddedPath(TreePath) | Return true if the specified path was added to the selection. |
Object getLastSelectedPathComponent() | Return the last path component in the first node of the current selection. |
TreePath getLeadSelectionPath() (in JTree ) |
Return the current lead path. |
The following table lists the examples that use tree selection listeners.
Example | Where Described | Notes |
---|---|---|
TreeDemo |
How to Use Trees | The tree listener responds to node clicks by showing the appropriate HTML document. |