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_SELECTIONSINGLE_TREE_SELECTIONCONTIGUOUS_TREE_SELECTIONThe 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. |