文档

Java™教程
隐藏目录
如何编写Tree Expansion监听器
路径: 使用Swing创建GUI
课程:编写事件监听器
部分:为常见事件实现监听器

如何编写树展开监听器

有时在使用树(tree)时,您可能需要在分支展开或折叠时做出反应。例如,您可能需要加载或保存数据。

有两种类型的监听器可以报告展开和折叠事件:树展开监听器和树即将展开监听器。本页面讨论的是树展开监听器。有关树即将展开监听器的描述,请参见如何编写树即将展开监听器

树展开监听器检测已发生的展开或折叠事件。一般来说,您应该实现一个树展开监听器,除非您需要阻止展开或折叠事件的发生。

 

以下示例演示了一个简单的树展开监听器。窗口底部的文本区域在每次发生树展开事件时显示一条消息。这是一个直接简单的演示。要查看一个更有趣的版本,可以否决展开事件,请参见如何编写树即将展开监听器

TreeExpandEventDemo.html

尝试一下: 
  1. 点击“启动”按钮以使用Java™ Web Start运行TreeExpandEventDemo(下载 JDK 7 或更高版本)。或者,要自己编译和运行示例,请参阅示例索引启动 TreeExpandEventDemo 示例
  2. 展开一个节点。将触发树展开事件。
  3. 折叠节点。将触发树折叠事件。

下面的代码显示了程序如何处理展开事件。您可以在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);
        }
    }
}

树展开监听器API

树展开监听器接口

TreeExpansionListener没有适配器类。

方法 目的
treeCollapsed(TreeExpansionEvent) 在树节点折叠后调用。
treeExpanded(TreeExpansionEvent) 在树节点展开后调用。

树展开事件API

方法 目的
Object getSource() 返回触发事件的对象。
TreePath getPath() 返回一个TreePath对象,该对象标识从树的根节点到折叠/展开节点的每个节点。

使用树展开监听器的示例

以下表格列出了使用树展开监听器的示例。

示例 描述位置 说明
TreeExpandEventDemo 本节 在树展开事件发生时显示一条消息。
TreeExpandEventDemo2 如何编写树将展开监听器 TreeExpandEventDemo添加一个树将展开监听器。

上一页: 如何编写表格模型监听器
下一页: 如何编写树模型监听器