这些Java教程是为JDK 8编写的。本页面中描述的示例和实践不利用后续版本引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改,了解Java SE 9及后续版本中更新的语言特性的摘要。
请参阅JDK发行说明,了解所有JDK发行版的新功能、增强功能以及删除或弃用选项的信息。
有时在使用树(tree)时,您可能需要在分支展开或折叠时做出反应。例如,您可能需要加载或保存数据。
有两种类型的监听器可以报告展开和折叠事件:树展开监听器和树即将展开监听器。本页面讨论的是树展开监听器。有关树即将展开监听器的描述,请参见如何编写树即将展开监听器。
树展开监听器检测已发生的展开或折叠事件。一般来说,您应该实现一个树展开监听器,除非您需要阻止展开或折叠事件的发生。
以下示例演示了一个简单的树展开监听器。窗口底部的文本区域在每次发生树展开事件时显示一条消息。这是一个直接简单的演示。要查看一个更有趣的版本,可以否决展开事件,请参见如何编写树即将展开监听器。
下面的代码显示了程序如何处理展开事件。您可以在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); ... } ... // TreeExpansionListener 接口所需的方法。 public void treeExpanded(TreeExpansionEvent e) { saySomething("检测到树展开事件", e); } // TreeExpansionListener 接口所需的方法。 public void treeCollapsed(TreeExpansionEvent e) { saySomething("检测到树折叠事件", e); } } }
TreeExpansionListener
没有适配器类。
方法 | 目的 |
---|---|
treeCollapsed(TreeExpansionEvent) | 在树节点折叠后调用。 |
treeExpanded(TreeExpansionEvent) | 在树节点展开后调用。 |
方法 | 目的 |
---|---|
Object getSource() | 返回触发事件的对象。 |
TreePath getPath() | 返回一个TreePath 对象,该对象标识从树的根节点到折叠/展开节点的每个节点。 |
以下表格列出了使用树展开监听器的示例。
示例 | 描述位置 | 说明 |
---|---|---|
TreeExpandEventDemo |
本节 | 在树展开事件发生时显示一条消息。 |
TreeExpandEventDemo2 |
如何编写树将展开监听器 | 向TreeExpandEventDemo 添加一个树将展开监听器。 |