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

Interface TreeSelectionModel

  • 所有已知实现类:
    DefaultTreeSelectionModelJTree.EmptySelectionModel

    public interface TreeSelectionModel
    此接口表示树组件的选择的当前状态。 有关使用树选择模型的信息和示例,请参阅The Java Tutorial中的 How to Use Trees

    树选择的状态由一组TreePaths和可选的一组整数来表征。 从TreePath到整数的映射是通过RowMapper的实例完成的。 TreeSelectionModel没有必要让RowMapper正确操作,但没有RowMapper getSelectionRows将返回null。

    可以将TreeSelectionModel配置为仅允许一个路径( SINGLE_TREE_SELECTION )多个连续路径( CONTIGUOUS_TREE_SELECTION )或多个不连续路径( DISCONTIGUOUS_TREE_SELECTION )。 RowMapper用于确定TreePath是否是连续的。 在没有RowMapper的情况下, CONTIGUOUS_TREE_SELECTIONDISCONTIGUOUS_TREE_SELECTION行为相同,即它们允许在TreeSelectionModel中包含任意数量的路径。

    对于选择模型CONTIGUOUS_TREE_SELECTION的路径被变更的任何时间( setSelectionPathaddSelectionPath ...)的TreePath,则再次检查,以他们是连续的。 也可以通过调用resetRowSelection来强制检查TreePath。 如何将一组不连续的TreePath映射到一个连续的集合留给该接口的实现者来强制执行特定的策略。

    实现应该组合添加到选择中的重复TreePath。 例如,以下代码

      TreePath[] paths = new TreePath[] { treePath, treePath };
       treeSelectionModel.setSelectionPaths(paths); 
    应导致只选择一个路径: treePath ,而不是treePath两个副本。

    前导TreePath是添加(或设置)的最后一条路径。 然后,前导行是与RowPathper确定的TreePath对应的行。

    • 字段详细信息

      • SINGLE_TREE_SELECTION

        static final int SINGLE_TREE_SELECTION
        选择一次只能包含一个路径。
        另请参见:
        常数字段值
      • CONTIGUOUS_TREE_SELECTION

        static final int CONTIGUOUS_TREE_SELECTION
        选择只能是连续的。 只有在提供RowMapper实例时才会强制执行此操作。 也就是说,如果没有设置RowMapper,则其行为与DISCONTIGUOUS_TREE_SELECTION相同。
        另请参见:
        常数字段值
      • DISCONTIGUOUS_TREE_SELECTION

        static final int DISCONTIGUOUS_TREE_SELECTION
        选择可以包含任何数量的不一定连续的项目。
        另请参见:
        常数字段值
    • 方法详细信息

      • setSelectionMode

        void setSelectionMode​(int mode)
        设置选择模型,该模型必须是SINGLE_TREE_SELECTION,CONTIGUOUS_TREE_SELECTION或DISCONTIGUOUS_TREE_SELECTION之一。

        如果当前选择对新模式无效,则这可能会更改选择。 例如,如果在模式更改为SINGLE_TREE_SELECTION时选择了三个TreePath,则只会保留一个TreePath。 由特定实现决定TreePath保持选择状态。

        参数
        mode - 要设置的选择模式
      • getSelectionMode

        int getSelectionMode()
        返回当前选择模式,一 SINGLE_TREE_SELECTIONCONTIGUOUS_TREE_SELECTIONDISCONTIGUOUS_TREE_SELECTION
        结果
        当前的选择模式
      • setSelectionPath

        void setSelectionPath​(TreePath path)
        将选择设置为路径。 如果这表示更改,则通知TreeSelectionListeners。 如果path为null,则此效果与调用clearSelection相同。
        参数
        path - 要选择的新路径
      • setSelectionPaths

        void setSelectionPaths​(TreePath[] paths)
        将选择设置为路径。 如果这表示更改,则通知TreeSelectionListeners。 如果paths为null,则此效果与调用clearSelection相同。
        参数
        paths - 新选择
      • addSelectionPath

        void addSelectionPath​(TreePath path)
        添加当前选择的路径。 如果路径当前未在选择中,则会通知TreeSelectionListeners。 如果path为null,则无效。
        参数
        path - 要添加到当前选择的新路径
      • addSelectionPaths

        void addSelectionPaths​(TreePath[] paths)
        添加当前选择的路径。 如果路径中的任何路径当前不在选择中,则会通知TreeSelectionListeners。 如果paths为null,则无效。
        参数
        paths - 要添加到当前选择的新路径
      • removeSelectionPath

        void removeSelectionPath​(TreePath path)
        从选择中删除路径。 如果路径在选择中,则会通知TreeSelectionListeners。 如果path为null,则无效。
        参数
        path - 要从选择中删除的路径
      • removeSelectionPaths

        void removeSelectionPaths​(TreePath[] paths)
        从选择中删除路径。 如果paths中的任何路径都在选择中,则会通知TreeSelectionListeners。 如果paths为null,则此方法无效。
        参数
        paths - 要从选择中删除的路径
      • getSelectionPath

        TreePath getSelectionPath()
        返回选择中的第一个路径。 首先如何定义是由实现者决定的,并且可能不一定是具有从RowMapper确定的最小整数值的TreePath。
        结果
        选择中的第一条路径
      • getSelectionPaths

        TreePath[] getSelectionPaths()
        返回选择中的路径。 如果当前没有选择任何内容,则返回null(或空数组)。
        结果
        选择中的路径
      • getSelectionCount

        int getSelectionCount()
        返回所选路径的数量。
        结果
        选择的路径数
      • isPathSelected

        boolean isPathSelected​(TreePath path)
        如果路径 path在当前选择中,则返回true。
        参数
        path - 要为其添加的路径
        结果
        path是否在当前选择中
      • isSelectionEmpty

        boolean isSelectionEmpty()
        如果选择当前为空,则返回true。
        结果
        选择目前是否为空
      • clearSelection

        void clearSelection()
        清空当前选择。 如果这表示当前选择的更改,则通知选择侦听器。
      • setRowMapper

        void setRowMapper​(RowMapper newMapper)
        设置RowMapper实例。 此实例用于确定特定TreePath的行。
        参数
        newMapper - 要设置的RowMapper
      • getRowMapper

        RowMapper getRowMapper()
        返回能够将TreePath映射到行的RowMapper实例。
        结果
        RowMapper实例,它能够将TreePath映射到一行
      • getSelectionRows

        int[] getSelectionRows()
        返回所有当前选定的行。 如果没有选定的TreePath或尚未设置RowMapper,则返回null(或空数组)。
        结果
        所有当前选定的行
      • getMinSelectionRow

        int getMinSelectionRow()
        返回从RowMapper获取的当前选定TreePath集合的最小值。 如果未选择任何内容,或者没有RowMapper,则返回-1。
        结果
        从RowMapper获取的当前选定TreePath集合的最小值
      • getMaxSelectionRow

        int getMaxSelectionRow()
        返回从RowMapper获取的当前选定TreePath集合的最大值。 如果未选择任何内容,或者没有RowMapper,则返回-1。
        结果
        从RowMapper获取的当前选定TreePath集合的最大值
      • isRowSelected

        boolean isRowSelected​(int row)
        如果选择了由 row标识的行,则返回true。
        参数
        row - 要检查的行
        结果
        是否选中该行
      • resetRowSelection

        void resetRowSelection()
        更新此对象从TreePaths到行的映射。 当从TreePaths到整数的映射已更改时(例如,已扩展节点),应调用此方法。

        你通常不必打电话给这个; JTree及其相关的侦听器将为您调用此方法。 如果要实现自己的视图类,则必须调用它。

      • getLeadSelectionRow

        int getLeadSelectionRow()
        返回潜在客户选择索引。 这是添加的最后一个索引。
        结果
        领先选择指数
      • getLeadSelectionPath

        TreePath getLeadSelectionPath()
        返回添加的最后一个路径。 这可能与JTree维护的leadSelectionPath属性不同。
        结果
        添加的最后一条路径
      • addPropertyChangeListener

        void addPropertyChangeListener​(PropertyChangeListener listener)
        将PropertyChangeListener添加到侦听器列表。 监听器已注册所有属性。

        选择模式更改时,将触发PropertyChangeEvent。

        参数
        listener - 要添加的PropertyChangeListener
      • removePropertyChangeListener

        void removePropertyChangeListener​(PropertyChangeListener listener)
        从侦听器列表中删除PropertyChangeListener。 这将删除为所有属性注册的PropertyChangeListener。
        参数
        listener - 要删除的PropertyChangeListener
      • addTreeSelectionListener

        void addTreeSelectionListener​(TreeSelectionListener x)
        将x添加到每次选定的TreePaths更改时通知的侦听器列表。
        参数
        x - 要添加的新侦听器
      • removeTreeSelectionListener

        void removeTreeSelectionListener​(TreeSelectionListener x)
        从每次选定的TreePaths更改集时收到通知的侦听器列表中删除x。
        参数
        x - 要删除的侦听器