-
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
)。 ARowMapper
用于确定TreePath是否是连续的。 在没有RowMapperCONTIGUOUS_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是添加(或设置)的最后一个路径。 那么引导行就是从RowMapper确定的对应于TreePath的行。
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
CONTIGUOUS_TREE_SELECTION
选择只能是连续的。static int
DISCONTIGUOUS_TREE_SELECTION
选择可以包含任何数量的不一定连续的项目。static int
SINGLE_TREE_SELECTION
选择一次只能包含一个路径。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 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()
返回从当前所选TreePath集合的RowMapper获取的最大值。int
getMinSelectionRow()
返回从当前所选TreePath集合的RowMapper获取的最小值。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)
从每次所选树形路径组更改时通知的侦听器列表中删除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
选择一次只能包含一个路径。- 另请参见:
- 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_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
为空,则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
- 要删除的侦听器
-
-