java DefaultMutableTreeNode 树形结构
目录
1.1. treeNode接口,mutabletreenode接口 1
1.2. 10-4:以TreeModel构造JTree. 1
3. 节点: DefaultMutableTreeNode 2
- Tree的概念
树。将分层数据显示为树状轮廓的组件。
一颗树由若干节点,通过层级关系组成,一个节点由TreeNode实例来表示,节点在树中的位置(路径)由TreePath实例来表示(定位)。
创建树时,首先要创建一个根节点,然后创建第二层节点添加到根节点,继续创建节点添加到其父节点,最终形成由根节点所引领的一棵树,再由 JTree 数组件显示出来。所有拥有子节点的节点可以自由展开或折叠子节点。
TreeNode 是一个接口,创建节点对象时,通常使用已实现该接口的的 DefaultMutableTreeNode 类。
- treeNode接口,mutabletreenode接口
- 10-4:以TreeModel构造JTree.
除了以节点的观念(TreeNode)建立树之外,你可以用data model的模式建立树。树的data model称为TreeModel,用此模式的好处 是可以触发相关的树事件,来处理树可能产生的一些变动。
- 功能要求
- 树形结构节点的查找与定位
- 节点: DefaultMutableTreeNode
DefaultMutableTreeNode表示一个节点,拥有对节点增删改查等操作的丰富方法。
DefaultMutableTreeNode 实现了 MutableTreeNode 接口,而 MutableTreeNode 接口继承自TreeNode 接口。
---------------------
DefaultMutableTreeNode 常用方法:
// 按广度优先的顺序遍历以此节点为根的子树(包含此节点下的所有节点)
Enumeration breadthFirstEnumeration();
// 按深度优先的顺序遍历以此节点为根的子树(包含此节点下的所有节点)
Enumeration depthFirstEnumeration();
DefaultMutableTreeNode 常用方法:
// 添加一个子节点在末尾
void add(MutableTreeNode newChild);
// 在指定位置插入一个子节点
void insert(MutableTreeNode newChild, int childIndex)
// 移除子节点
void remove(int childIndex);
void remove(MutableTreeNode aChild);
void removeAllChildren();
// 获取子节点数量
int getChildCount();
// 获取叶子节点的数量
int getLeafCount();
// 获取指定索引位置的子节点
TreeNode getChildAt(int index);
// 获取指定子节点之后的子节点
TreeNode getChildAfter(TreeNode aChild);
// 获取指定子节点之前的子节点
TreeNode getChildBefore(TreeNode aChild);
// 判断某节点是否为此节点的子节点
boolean isNodeChild(TreeNode aNode);
// 获取此节点的父节点,没有父节点则返回 null
TreeNode getParent();
// 判断此节点是否为根节点
boolean isRoot();
// 判断是否为叶节点(没有子节点即为叶节点,则返回 true)
boolean isLeaf();
// 返回此节点上的级数,从根到此节点的距离。如果此节点为根,则返回 0。
int getLevel();
// 返回从根到此节点的路径。该路径中第一个元素是根节点,最后一个元素是此节点。
TreeNode[] getPath();
// 遍历子节点(只包括直接子节点,不包括孙节点)
Enumeration children();
// 按广度优先的顺序遍历以此节点为根的子树(包含此节点下的所有节点)
Enumeration breadthFirstEnumeration();
// 按深度优先的顺序遍历以此节点为根的子树(包含此节点下的所有节点)
Enumeration depthFirstEnumeration();
// 设置节点的用户对象(节点显示的名称)
// 获取节点的用户对象(节点显示的名称)
Object getUserObject();
- 3. 路径: TreePath
TreePath表示某节点的路径(从根节点到此节点),一般使用方式:
// 一个节点
DefaultMutableTreeNode node = ...;
// 获取节点的路径(从根节点到此节点沿路径的所有节点集)
TreeNode[] pathNodes = node.getPath();
// 使用节点路径集创建树路径
TreePath treePath = new TreePath(pathNodes);
/*
* 这里得到的 treePath 表示的是树中的一个路径,可以定位到具体的节点,
* 从而对该节点进行相关操作(展开/折叠子节点等),详见后面 JTree 的介绍。
*/
/* 树路径的其他常用方法 */
// 获取此树路径上的所有节点,返回数组的元素为节点对象
Object[] paths = treePath.getPath();
// 获取此树路径上的节点数量
int nodeCount = treePath.getPathCount();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2021-12-15 IDEA如何配置VM(VM arguments)参数
2021-12-15 Spire.Doc-FE_3.9.0(免费版)
2021-12-15 Java 操作Word书签(三):用文本、图片、表格替换书签