Module  java.desktop
软件包  javax.swing.tree

Interface TreeSelectionModel

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


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

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

    可以将TreeSelectionModel配置为仅允许一些路径( SINGLE_TREE_SELECTION )多个连续路径( CONTIGUOUS_TREE_SELECTION )或多个不连续路径( DISCONTIGUOUS_TREE_SELECTION )。 A 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是添加(或设置)的最后一个路径。 那么引导行就是从RowMapper确定的对应于TreePath的行。

    • 字段详细信息

      • SINGLE_TREE_SELECTION

        static final int SINGLE_TREE_SELECTION
        选择一次只能包含一个路径。
        另请参见:
        Constant Field Values
      • CONTIGUOUS_TREE_SELECTION

        static final int CONTIGUOUS_TREE_SELECTION
        选择只能是连续的。 仅当提供了RowMapper实例时,才会执行此操作。 也就是说,如果没有设置RowMapper,则其行为与DISCONTIGUOUS_TREE_SELECTION相同。
        另请参见:
        Constant Field Values
      • DISCONTIGUOUS_TREE_SELECTION

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

      • 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_SELECTION或者 DISCONTIGUOUS_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为空,则path
        参数
        path - 添加到当前选择的新路径
      • addSelectionPaths

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

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

        void removeSelectionPaths​(TreePath[] paths)
        从选择中删除路径。 如果选择了paths中的任何路径, paths通知TreeSelectionListeners。 如果paths为空,则此方法无效。
        参数
        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实例。
        结果
        可以将TreePath映射到行的RowMapper实例
      • getSelectionRows

        int[] getSelectionRows​()
        返回当前选定的所有行。 如果没有选择的TreePath或者没有设置RowMapper,这将返回null(或一个空数组)。
        结果
        所有当前选定的行
      • getMinSelectionRow

        int getMinSelectionRow​()
        返回从当前所选TreePath集合的RowMapper获取的最小值。 如果没有选择,或没有RowMapper,则返回-1。
        结果
        从RowMapper获取的当前所选TreePath集合的最小值
      • getMaxSelectionRow

        int getMaxSelectionRow​()
        返回从当前所选TreePath集合的RowMapper获取的最大值。 如果没有选择,或没有RowMapper,则返回-1。
        结果
        从RowMapper获取的当前所选TreePath的最大值
      • isRowSelected

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

        void resetRowSelection​()
        将此对象的映射从TreePath更新为行。 当从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添加到每次选定的TreePath集合更改时通知的侦听器列表。
        参数
        x - 要添加的新侦听器
      • removeTreeSelectionListener

        void removeTreeSelectionListener​(TreeSelectionListener x)
        从每次所选树形路径组更改时通知的侦听器列表中删除x。
        参数
        x - 要删除的侦听器