所有类


javax.swing.tree
接口 TreeSelectionModel

所有已知实现类:
DefaultTreeSelectionModel, JTree.EmptySelectionModel

public interface TreeSelectionModel

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

树选择的状态由 TreePath 集合描述,也可以是整数集合。从 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 是添加(或设置)的最后一个路径。前导行则是对应于 TreePath 的行,由 RowMapper 确定。


字段摘要
static int CONTIGUOUS_TREE_SELECTION
          选择只能是连续的。
static int DISCONTIGUOUS_TREE_SELECTION
          选择可以包含任何数量的项,这些项不必是连续的。
static int SINGLE_TREE_SELECTION
          一次只能选择一个路径。
 
方法摘要
 void addPropertyChangeListener(PropertyChangeListener listener)
          将一个 PropertyChangeListener 添加到侦听器列表中。
 void addSelectionPath(TreePath path)
          将路径添加到当前的选择中。
 void addSelectionPaths(TreePath[] paths)
          向当前的选择中添加路径。
 void addTreeSelectionListener(TreeSelectionListener x)
          向侦听器列表添加 x,每次选定的 TreePath 集合发生更改时,这些侦听器都会得到通知。
 void clearSelection()
          清空当前的选择。
 TreePath getLeadSelectionPath()
          返回添加的最后一个路径。
 int getLeadSelectionRow()
          返回前导选择索引。
 int getMaxSelectionRow()
          返回从 RowMapper 获取的已选的 TreePath 当前集合中的最大值。
 int getMinSelectionRow()
          返回从 RowMapper 获取的已选的 TreePath 当前集合中的最小值。
 RowMapper getRowMapper()
          返回能够将 TreePath 映射到行的 RowMapper 实例。
 int getSelectionCount()
          返回选择的路径数。
 int getSelectionMode()
          返回当前选择的模式(SINGLE_TREE_SELECTIONCONTIGUOUS_TREE_SELECTIONDISCONTIGUOUS_TREE_SELECTION 之一)。
 TreePath getSelectionPath()
          返回选择中的第一个路径。
 TreePath[] getSelectionPaths()
          返回选择中的路径。
 int[] getSelectionRows()
          返回所有当前已选的行。
 boolean isPathSelected(TreePath path)
          如果路径 path 在当前的选择中,则返回 true。
 boolean isRowSelected(int row)
          如果选择了由 row 标识的行,则返回 true。
 boolean isSelectionEmpty()
          如果选择当前为空,则返回 true。
 void removePropertyChangeListener(PropertyChangeListener listener)
          从侦听器列表移除一个 PropertyChangeListener。
 void removeSelectionPath(TreePath path)
          从选择中移除路径。
 void removeSelectionPaths(TreePath[] paths)
          从选择中移除路径。
 void removeTreeSelectionListener(TreeSelectionListener x)
          从每次已选的 TreePath 集合发生更改时都会得到通知的侦听器列表中移除 x。
 void resetRowSelection()
          更新此对象从 TreePath 到行的映射关系。
 void setRowMapper(RowMapper newMapper)
          设置 RowMapper 实例。
 void setSelectionMode(int mode)
          设置选择模型,它必须是 SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION 或 DISCONTIGUOUS_TREE_SELECTION 之一。
 void setSelectionPath(TreePath path)
          为该选择设置路径。
 void setSelectionPaths(TreePath[] paths)
          为该选择设置路径。
 

字段详细信息

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。


getSelectionMode

int getSelectionMode()
返回当前选择的模式(SINGLE_TREE_SELECTIONCONTIGUOUS_TREE_SELECTIONDISCONTIGUOUS_TREE_SELECTION 之一)。


setSelectionPath

void setSelectionPath(TreePath path)
为该选择设置路径。如果这表示一个更改,则通知 TreeSelectionListener。如果 path 为 null,则这与调用 clearSelection 具有相同的效果。

参数:
path - 要选择的新路径

setSelectionPaths

void setSelectionPaths(TreePath[] paths)
为该选择设置路径。如果这表示一个更改,则通知 TreeSelectionListener。如果 paths 为 null,则这与调用 clearSelection 具有相同的效果。

参数:
paths - 新的选择

addSelectionPath

void addSelectionPath(TreePath path)
将路径添加到当前的选择中。如果路径当前不在选择中,则通知 TreeSelectionListener。如果 path 为 null,则此方法无效。

参数:
path - 添加到当前选择中的新路径

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部