模块 java.desktop

接口 TreeModel

所有已知的实现类:
DefaultTreeModel

public interface TreeModel
JTree 使用的型号。

JTree 及其相关类广泛使用 TreePath 来识别 TreeModel 中的节点。如果 TreeModel 返回相同的对象,与 equals 相比,在同一父级下的两个不同索引处,则生成的 TreePath 对象也将被视为相等。某些实现可能假设如果两个 TreePath 相等,则它们标识相同的节点。如果不满足此条件,可能会导致绘画问题和其他异常情况。换句话说,如果给定父对象的 getChild 返回相同的对象(由 equals 确定)可能会导致问题,建议您避免这样做。

同样,JTree 及其相关类将 TreePath 放在 Map 中。因此,如果一个节点被请求两次,则返回值必须相等(使用 equals 方法)并且具有相同的 hashCode

有关树模型的更多信息,包括自定义实现的示例,请参阅 The Java Tutorial. 中的 如何使用树木

参见:
  • 方法详情

    • getRoot

      Object  getRoot()
      返回树的根。仅当树没有节点时才返回 null
      返回:
      树根
    • getChild

      Object  getChild(Object  parent, int index)
      返回父子数组中索引为 indexparent 的子元素。 parent 必须是以前从该数据源获得的节点。这不应返回 null 如果 indexparent 的有效索引(即 index >= 0 && index < getChildCount(parent ))。
      参数:
      parent - 树中的一个节点,从此数据源获得
      index - 要返回的孩子的索引
      返回:
      索引为 indexparent 的孩子
    • getChildCount

      int getChildCount(Object  parent)
      返回 parent 的孩子数。如果节点是叶节点或没有子节点,则返回 0。 parent 必须是以前从该数据源获得的节点。
      参数:
      parent - 树中的一个节点,从此数据源获得
      返回:
      节点 parent 的子节点数
    • isLeaf

      boolean isLeaf(Object  node)
      如果 node 是叶子,则返回 true。即使 node 没有孩子,此方法也可能返回 false。例如,文件系统中的目录可能不包含任何文件;代表目录的节点不是叶节点,但它也没有子节点。
      参数:
      node - 树中的一个节点,从此数据源获得
      返回:
      如果 node 是叶子,则为真
    • valueForPathChanged

      void valueForPathChanged(TreePath  path, Object  newValue)
      当用户将 path 标识的项目的值更改为 newValue 时发送消息。如果 newValue 表示一个真正的新值,模型应该发布一个 treeNodesChanged 事件。
      参数:
      path - 用户更改的节点路径
      newValue - 来自 TreeCellEditor 的新值
    • getIndexOfChild

      int getIndexOfChild(Object  parent, Object  child)
      返回父项中子项的索引。如果 parentchildnull ,则返回 -1。如果 parentchild 不属于此树模型,则返回 -1。
      参数:
      parent - 树中的一个节点,从此数据源获得
      child - 我们感兴趣的节点
      返回:
      子项在父项中的索引,如果 childparentnull 或不属于此树模型,则为 -1
    • addTreeModelListener

      void addTreeModelListener(TreeModelListener  l)
      为树更改后发布的 TreeModelEvent 添加监听器。
      参数:
      l - 要添加的监听器
      参见:
    • removeTreeModelListener

      void removeTreeModelListener(TreeModelListener  l)
      删除之前使用 addTreeModelListener 添加的监听器。
      参数:
      l - 要删除的监听器
      参见: