模块  java.desktop
软件包  javax.swing.tree

Interface TreeModel

  • 所有已知实现类:
    DefaultTreeModel

    public interface TreeModel
    该模型使用JTree

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

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

    有关树模型的更多信息,包括自定义实现的示例,请参阅The Java Tutorial中的 How to Use Trees

    另请参见:
    TreePath
    • 方法详细信息

      • getRoot

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

        Object getChild​(Object parent,
                        int index)
        返回的孩子parent索引index父项的子阵列英寸 parent必须是先前从此数据源获取的节点。 如果indexparent (即index >= 0 && index < getChildCount(parent )的有效索引,则不应返回null
        参数
        parent - 树中的节点,从此数据源获取
        index - 要退回的孩子的索引
        结果
        parent的孩子,索引号 index
      • getChildCount

        int getChildCount​(Object parent)
        返回子项数parent 如果节点是叶子或者没有子节点,则返回0。 parent必须是先前从此数据源获取的节点。
        参数
        parent - 树中的节点,从此数据源获取
        结果
        节点 parent的子节 parent
      • isLeaf

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

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

        int getIndexOfChild​(Object parent,
                            Object child)
        返回父级中的子索引。 如果parentchildnull ,则返回-1。 如果parentchild不属于此树模型,则返回-1。
        参数
        parent - 树中的节点,从此数据源获取
        child - 我们感兴趣的节点
        结果
        父项 child的索引,如果 childparentnull -1,或者不属于此树模型