如何编写树扩展监听器
原文: https://docs.oracle.com/javase/tutorial/uiswing/events/treeexpansionlistener.html
有时使用树时,您可能需要在分支展开或折叠时做出反应。例如,您可能需要加载或保存数据。
两种监听器报告扩展和崩溃事件:树扩展监听器和树将扩展监听器。本页讨论树扩展监听器。有关 Tree-Will-Expand 监听器的说明,请参见如何编写树将扩展监听器。
树扩展监听器检测何时发生了扩展或崩溃。通常,除非需要防止扩展或崩溃,否则应实现树扩展监听器。
此示例演示了一个简单的树扩展监听器。每次发生树扩展事件时,窗口底部的文本区域都会显示一条消息。这是一个简单明了的简单演示。要查看可以否决扩展的更有趣的版本,请参阅如何编写树将扩展监听器。
Try this:
单击“启动”按钮以使用 Java™Web Start (下载 JDK 7 或更高版本)运行 TreeExpandEventDemo。或者,要自己编译并运行示例,请参考示例索引。
展开节点。触发了树扩展事件。
- 折叠节点。触发了树崩溃的事件。
以下代码显示程序如何处理扩展事件。您可以在 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);
}
}
}
TreeExpansionListener
没有适配器类。
方法 | 目的 |
---|---|
treeCollapsed(TreeExpansionEvent) | 在树节点崩溃后调用。 |
treeExpanded(TreeExpansionEvent) | 在树节点扩展后调用。 |
方法 | 目的 |
---|---|
对象 getSource() | 返回触发事件的对象。 |
TreePath getPath() | 返回 TreePath 对象,该对象标识从树的根到折叠/展开节点的每个节点(包括)。 |
下表列出了使用树扩展监听器的示例。
例 | 在哪里描述 | 笔记 |
---|---|---|
TreeExpandEventDemo |
这个部分 | 每当发生树扩展事件时显示消息。 |
TreeExpandEventDemo2 |
如何编写树将扩展监听器 | 向TreeExpandEventDemo 添加 tree-will-expand 监听器。 |