Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
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.
Two kinds of listeners report expansion and collapse occurrences: tree expansion listeners and tree-will-expand listeners. This page discusses tree expansion listeners. See How to Write a Tree-Will-Expand Listener for a description of Tree-Will-Expand listeners.
A tree expansion listener detects when an expansion or collapse has already occured. In general, you should implement a tree expansion listener unless you need to prevent an expansion or collapse from ocurring .
This example demonstrates a simple tree expansion listener. The text area at the bottom of the window displays a message every time a tree expansion event occurs. It's a straightforward, simple demo. To see a more interesting version that can veto expansions, see How to Write a Tree-Will-Expand Listener.
The following code shows how the program handles expansion events. You can find the source code for this example 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); } } }
The TreeExpansionListener Interface
TreeExpansionListener
has no adapter class.
方法 | 目的 |
---|---|
treeCollapsed(TreeExpansionEvent) | Called just after a tree node collapses. |
treeExpanded(TreeExpansionEvent) | Called just after a tree node expands. |
方法 | 目的 |
---|---|
Object getSource() | Return the object that fired the event. |
TreePath getPath() | Returns a
TreePath object that identifies each node from the root of the tree to the collapsed/expanded node, inclusive. |
The following table lists the examples that use tree expansion listeners.
例子 | Where Described | Notes |
---|---|---|
TreeExpandEventDemo |
This section | Displays a message whenever a tree expansion event occurs. |
TreeExpandEventDemo2 |
如何编写树将展开监听器 | Adds a tree-will-expand listener to TreeExpandEventDemo . |