Start of Tutorial > Start of Trail > Start of Lesson | Search |
Sometimes when using a tree, you might need to react when a branch becomes expanded or collapsed. For example, you might need to load or save data. Or you might need to prevent the user from expanding a particular node.Two kinds of listeners report expansion and collapse occurrences: tree expansion listeners and tree-will-expand listeners. This page discusses the former. A tree expansion listener detects when an expansion or collapse has happened. In general, you should implement a tree expansion listener unless you might need to prevent an expansion or collapse from happening.
Tree-will-expand listeners are discussed in How to Write a Tree-Will-Expand Listener. A tree-will-expand listener detects when an expansion or collapse is about to happen.
The following applet demonstrates a simple tree expansion listener. The text area at the bottom of the applet displays a message every time a tree expansion event occurs. It's a straightforward, boring applet. To see a more interesting version that can veto expansions, go to How to Write a Tree-Will-Expand Listener.
This is a picture of the applet's GUI. To run the applet, click the picture. The applet will appear in a new browser window.The following code shows how the program handles expansion events. You can find all the applet's source code in
TreeExpandEventDemo.java
.public class TreeExpandEventDemo ... { ... void saySomething(String eventDescription, TreeExpansionEvent e) { textArea.append(eventDescription + "; " + "path = " + e.getPath() + newline); } class DemoArea ... implements TreeExpansionListener { ... public DemoArea() { ... tree.addTreeExpansionListener(this); ... } ... // Required by TreeExpansionListener interface. public void treeExpanded(TreeExpansionEvent e) { saySomething("Tree-expanded event detected", e); } // Required by TreeExpansionListener interface. public void treeCollapsed(TreeExpansionEvent e) { saySomething("Tree-collapsed event detected", e); } } }
TheTreeExpansionListener
interface contains two methods:Both methods have a single parameter: a
void treeCollapsed(TreeExpansionEvent)
- Called just after a tree node collapses.
void treeExpanded(TreeExpansionEvent)
- Called just after a tree node expands.
TreeExpansionEvent
object. TheTreeExpansionEvent
class defines the following method:Another useful method is
TreePath getPath()
- Returns a
TreePath
object that identifies each node from the root of the tree to the collapsed/expanded node, inclusive.getSource
, whichTreeExpansionEvent
inherits fromEventObject
.
The following table lists the examples that use tree expansion listeners.
Example Where Described Notes TreeExpandEventDemo
This section Displays a message whenever a tree expansion event occurs. TreeExpandEventDemo2
How to Write a Tree-Will-Expand Listener Adds a tree-will-expand listener to TreeExpandEventDemo
.
Start of Tutorial > Start of Trail > Start of Lesson | Search |