Module  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 IN Map秒。 因此,如果节点被请求两次,返回值必须相等(使用equals方法)并具有相同的hashCode

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

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

      • getRoot

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

        Object getChild​(Object parent,
                        int index)
        返回父子的子数组中索引indexparentindex的子代。 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 例如,文件系统中的目录可能不包含文件; 表示目录的节点不是叶,而是没有子节点。
        参数
        node - 从该数据源获取的树中的一个节点
        结果
        如果 node是叶子的话
      • valueForPathChanged

        void valueForPathChanged​(TreePath path,
                                 Object newValue)
        当用户已经改变了由确定的项的值传递消息pathnewValue 如果newValue表示一个真正的新值,该模型应该发布一个treeNodesChanged事件。
        参数
        path - 用户已更改的节点的路径
        newValue - TreeCellEditor的新值
      • getIndexOfChild

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