-
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_SELECTION
和DISCONTIGUOUS_TREE_SELECTION
行为相同,即它们允许在TreeSelectionModel中包含任意数量的路径。对于选择模型
CONTIGUOUS_TREE_SELECTION
的路径被变更的任何时间(setSelectionPath
,addSelectionPath
...)的TreePath,则再次检查,以他们是连续的。 也可以通过调用resetRowSelection
来强制检查TreePath。 如何将一组不连续的TreePath映射到一个连续的集合留给该接口的实现者来强制执行特定的策略。实现应该组合添加到选择中的重复TreePath。 例如,以下代码
TreePath[] paths = new TreePath[] { treePath, treePath }; treeSelectionModel.setSelectionPaths(paths);
应导致只选择一个路径:treePath
,而不是treePath
两个副本。前导TreePath是添加(或设置)的最后一条路径。 然后,前导行是与RowPathper确定的TreePath对应的行。
-
-
字段汇总
字段 变量和类型 字段 描述 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添加到每次选定的TreePaths更改时通知的侦听器列表。void
clearSelection()
清空当前选择。TreePath
getLeadSelectionPath()
返回添加的最后一个路径。int
getLeadSelectionRow()
返回潜在客户选择索引。int
getMaxSelectionRow()
返回从RowMapper获取的当前选定TreePath集合的最大值。int
getMinSelectionRow()
返回从RowMapper获取的当前选定TreePath集合的最小值。RowMapper
getRowMapper()
返回能够将TreePath映射到行的RowMapper实例。int
getSelectionCount()
返回所选路径的数量。int
getSelectionMode()
返回当前选择模式,一SINGLE_TREE_SELECTION
,CONTIGUOUS_TREE_SELECTION
或DISCONTIGUOUS_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)
从每次选定的TreePaths更改集时收到通知的侦听器列表中删除x。void
resetRowSelection()
更新此对象从TreePaths到行的映射。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保持选择状态。- 参数
-
mode
- 要设置的选择模式
-
getSelectionMode
int getSelectionMode()
返回当前选择模式,一SINGLE_TREE_SELECTION
,CONTIGUOUS_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
为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
- 要删除的侦听器
-
-