如何编写树扩展侦听器

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

两种侦听器报告扩展和崩溃的发生:* tree 扩展侦听器和 tree-will-expand 侦听器。本页讨论 tree 扩展*侦听器。请参阅如何编写一个树状扩展侦听器以获取 Tree-Will-Expand 侦听器的描述。

树扩展侦听器检测何时已发生扩展或崩溃。通常,除非不需要防止发生扩展或崩溃,否则应实现树扩展侦听器。

此示例演示了一个简单的树扩展侦听器。每次发生树扩展事件时,窗口底部的文本区域都会显示一条消息。这是一个简单明了的演示。要查看可以否决扩展的更有趣的版本,请参见如何编写一个树状扩展侦听器

TreeExpandEventDemo.html

Try this:

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

树扩展侦听器 API

TreeExpansionListener interface

  • TreeExpansionListener没有适配器类.*
MethodPurpose
treeCollapsed(TreeExpansionEvent)在树节点崩溃之后调用。
treeExpanded(TreeExpansionEvent)在树节点扩展之后调用。

TreeExpansionEvent API

MethodPurpose
Object getSource()返回引发事件的对象。
TreePath getPath()返回一个TreePath对象,该对象标识从树的根到折叠/展开节点(包括端点)的每个节点。

使用树扩展侦听器的示例

下表列出了使用树扩展侦听器的示例。

ExampleWhere DescribedNotes
TreeExpandEventDemoThis section每当发生树扩展事件时显示一条消息。
TreeExpandEventDemo2如何编写一个树状扩展侦听器TreeExpandEventDemo添加一个树状扩展侦听器。