Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
The tree-will-expand listener prevents a tree node from expanding or collapsing. To be notified just after an expansion or collapse occurs, you should use a tree expansion listener instead.
This demo adds a tree-will-expand listener to the TreeExpandEventDemo
example discussed in How to Write a Tree Expansion Listener. The code added here demonstrates that tree-will-expand listeners prevent node expansions and collapses: The listener will prompt you for confirmation each time you try to expand a node.
treeWillCollapse
method lets the collapse occur, uncontested.The following snippet shows the code that this program adds to TreeExpandEventDemo
. The bold line prevents the tree expansion from happening. You can find all the demo's source code in
TreeExpandEventDemo2.java
.
public class TreeExpandEventDemo2 ... { ... class DemoArea ... implements ... TreeWillExpandListener { ... public DemoArea() { ... tree.addTreeWillExpandListener(this); ... } ... //Required by TreeWillExpandListener interface. public void treeWillExpand(TreeExpansionEvent e) throws ExpandVetoException { saySomething("Tree-will-expand event detected", e); //...show a dialog... if (/* user said to cancel the expansion */) { //Cancel expansion. saySomething("Tree expansion cancelled", e); throw new ExpandVetoException(e); } } //Required by TreeWillExpandListener interface. public void treeWillCollapse(TreeExpansionEvent e) { saySomething("Tree-will-collapse event detected", e); } ... } }
The TreeWillExpandListener Interface
TreeWillExpandListener
has no adapter class.
方法 | 目的 |
---|---|
treeWillCollapse(TreeExpansionEvent) | Called just before a tree node collapses. To prevent the collapse from occurring, your implementation of this method should throw a
ExpandVetoException event. |
treeWillExpand(TreeExpansionEvent) | Called just before a tree node expands. To prevent the expansion from occurring, your implementation of this method should throw a
ExpandVetoException event. |
See The Tree Expansion Event API for information about the
TreeExpansionEvent
argument for the preceding methods.
TreeExpandEventDemo2
, featured in this section, is our only example that uses a tree-will-expand listener.