首页 > 编程语言 >java DefaultMutableTreeNode 树形结构

java DefaultMutableTreeNode 树形结构

时间:2022-12-15 16:23:23浏览次数:70  
标签:TreeNode 路径 接口 节点 树形 TreePath java DefaultMutableTreeNode

目录

1. Tree的概念 1

  1.1. treeNode接口,mutabletreenode接口 1

  1.2. 10-4:以TreeModel构造JTree. 1

2. 功能要求 2

  2.1. 树形结构节点的查找与定位 2

3. 节点: DefaultMutableTreeNode 2

  3.1. 3. 路径: TreePath 5

  1. Tree的概念

树。将分层数据显示为树状轮廓的组件。

 

一颗树由若干节点,通过层级关系组成,一个节点由TreeNode实例来表示,节点在树中的位置(路径)由TreePath实例来表示(定位)。

 

创建树时,首先要创建一个根节点,然后创建第二层节点添加到根节点,继续创建节点添加到其父节点,最终形成由根节点所引领的一棵树,再由 JTree 数组件显示出来。所有拥有子节点的节点可以自由展开或折叠子节点。

 

TreeNode 是一个接口,创建节点对象时,通常使用已实现该接口的的 DefaultMutableTreeNode 类。

 

  1. treeNode接口,mutabletreenode接口
  1. 10-4:以TreeModel构造JTree.

除了以节点的观念(TreeNode)建立树之外,你可以用data model的模式建立树。树的data model称为TreeModel,用此模式的好处 是可以触发相关的树事件,来处理树可能产生的一些变动。

 

  1. 功能要求
  1. 树形结构节点的查找与定位
  1. 节点: 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();

// 设置节点的用户对象(节点显示的名称)

 void setUserObject(Object userObject);

// 获取节点的用户对象(节点显示的名称)

Object getUserObject();

 

  1. 3. 路径: TreePath

TreePath表示某节点的路径(从根节点到此节点),一般使用方式:

// 一个节点

DefaultMutableTreeNode node = ...;

 

// 获取节点的路径(从根节点到此节点沿路径的所有节点集)

TreeNode[] pathNodes = node.getPath();

// 使用节点路径集创建树路径

TreePath treePath = new TreePath(pathNodes);

/*

 * 这里得到的 treePath 表示的是树中的一个路径,可以定位到具体的节点,

 * 从而对该节点进行相关操作(展开/折叠子节点等),详见后面 JTree 的介绍。

 */

/* 树路径的其他常用方法 */

// 获取此树路径上的所有节点,返回数组的元素为节点对象

Object[] paths = treePath.getPath();

// 获取此树路径上的节点数量

int nodeCount = treePath.getPathCount();

  // 获取此树路径表示的节点的父节点的树路径 TreePath parentPath = treePath.getParentPath();   // 判断指定树路径是否为此树路径的“子孙”树路径 boolean isDescendant = treePath.isDescendant(TreePath aTreePath); ---------------------  (树) - 谢潭生的博客 - CSDN博客.html   转自:java DefaultMutableTreeNode 树形结构 目录 1. Tree的概念 1 1.1. treeNode接口,mutabletreenode接口 1 1.2. 10-4:以T_attilax的博客-CSDN博客  

标签:TreeNode,路径,接口,节点,树形,TreePath,java,DefaultMutableTreeNode
From: https://www.cnblogs.com/wwssgg/p/16985311.html

相关文章

  • java+Selenium(一)八种元素获取方式
    官方文档:https://www.selenium.dev/documentationchromedriver下载地址:注意:需要下载与浏览器匹配版本的http://chromedriver.storage.googleapis.com/index.htmlhttp://......
  • Java数组(3)三种初始化及内存分析
           ......
  • java idea spring mvc 入门 最起码 我8080跑起来了
    IDEA建立SpringMVCHelloWorld详细入门教程---------------------------------------------生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自......
  • java泛型-桥方法
    虚拟机中没有泛型,只有普通的类和方法。类型擦除会将类型参数替换成相应的限定类型,如果没有限定类型则替换为Object。桥方法主要用来解决类型擦除和多态特性的冲突问题。......
  • [Java SE/Junit] 基于Java的单元测试框架Mockito[转载]
    Mockito是一个模拟测试框架,主要功能是在单元测试中模拟类/对象的行为。1为什么要使用Mockito?Mock可以理解为创建一个虚假的对象,或者说模拟出一个对象.在测试环境中用......
  • [Java SE/JDK]Intellij IDEA中设置JDK版本
    1IntellijIDEA修改JDK版本第1步:配置JDK环境变量装好JDK之后,要添加一个环境变量:JAVA_HOME第2步:修改Idea配置由Maven决定的版本<build><plugins><p......
  • Javascript-奖品概率算法
    constLUCKY_AIRDROP_PRIZE=[{"id":1,"prop":16.2},{"id":2,"prop":16.2},{"id":3,"prop":16.2},{"id":4,"prop":16.2},......
  • Java Socket网络编程
    1.TCP流式SocketTCP是TCP/IP体系结构中位于传输层的面向连接的协议,提供可靠的字节流传输。通信双方需要建立连接,发送端的所有数据按顺序发送,接受端按顺序接收。......
  • java泛型
    1.泛型方法/**<T>表示本方法持有一个不确定类型T,表示本方法是一个泛型方法*T返回值类型为T类型的对象*Class<T>clazz:只有通过反射才能拿到泛型T的对象,因为方......
  • java 浮点数 判断相等
    浮点数之间的等值判断,基本数据类型不能使用==进行比较,包装数据类型不能使用equals进行判断。说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指......