本Java教程是针对JDK 8编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并且可能使用不再可用的技术。
有关Java SE 9及其后续版本中更新的语言功能的摘要,请参阅Java语言更改。
有关所有JDK版本的新功能、增强功能和已删除或弃用选项的信息,请参阅JDK发行说明。
tree-will-expand监听器可以阻止树节点的展开或折叠。如果想在展开或折叠发生后收到通知,应该使用树展开监听器。
此演示向在如何编写树展开监听器中讨论的TreeExpandEventDemo
示例中添加了一个tree-will-expand监听器。此处添加的代码演示了tree-will-expand监听器可以阻止节点的展开和折叠:每次尝试展开节点时,监听器都会提示您进行确认。
treeWillCollapse
方法允许折叠发生,无需竞争。以下代码片段显示了此程序添加到TreeExpandEventDemo
中的代码。加粗的那一行阻止了树的展开。您可以在TreeExpandEventDemo2.java
中找到所有演示的源代码。
public class TreeExpandEventDemo2 ... { ... class DemoArea ... implements ... TreeWillExpandListener { ... public DemoArea() { ... tree.addTreeWillExpandListener(this); ... } ... //实现TreeWillExpandListener接口所必需的方法 public void treeWillExpand(TreeExpansionEvent e) throws ExpandVetoException { saySomething("检测到树节点将展开的事件", e); //...显示一个对话框... if (/* 用户取消了展开 */) { //取消展开 saySomething("取消树节点展开", e); throw new ExpandVetoException(e); } } //实现TreeWillExpandListener接口所必需的方法 public void treeWillCollapse(TreeExpansionEvent e) { saySomething("检测到树节点将折叠的事件", e); } ... } }
TreeWillExpandListener
没有适配器类。
方法 | 用途 |
---|---|
treeWillCollapse(TreeExpansionEvent) | 在树节点折叠之前调用。为了阻止折叠的发生,你的方法实现应该抛出一个 ExpandVetoException 事件。 |
treeWillExpand(TreeExpansionEvent) | 在树节点展开之前调用。为了阻止展开的发生,你的方法实现应该抛出一个 ExpandVetoException 事件。 |
有关前述方法的参数 TreeExpansionEvent
的信息,请参见 树节点展开事件 API。
TreeExpandEventDemo2
,在本节中展示的示例,是唯一一个使用树将要展开监听器的示例。