- 所有已实现的接口:
-
Serializable
,Cloneable
,TreeSelectionModel
- 直接已知的子类:
-
JTree.EmptySelectionModel
resetRowSelection是从更新所选路径的任何方法中调用的。如果您对这些方法中的任何一个进行子类化以过滤允许选择的内容,请确保如果您没有调用super,则消息resetRowSelection
。警告:此类的序列化对象将与未来的Swing版本不兼容。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将对所有JavaBeans的长期存储支持添加到java.beans
包中。请参阅XMLEncoder
。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionprotected SwingPropertyChangeSupport
用于通知已注册的侦听器。protected int
选择中导航路径的索引。protected TreePath
最后添加的路径。protected int
导航行。protected EventListenerList
事件侦听器列表。protected DefaultListSelectionModel
处理维护列表选择模型。protected RowMapper
为给定路径提供行。protected TreePath[]
当前选择的路径。static final String
选择模式的属性名称。protected int
选择模式,将是SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION或DISCONTIGUOUS_TREE_SELECTION之一。Fields declared in interface javax.swing.tree.TreeSelectionModel
CONTIGUOUS_TREE_SELECTION, DISCONTIGUOUS_TREE_SELECTION, SINGLE_TREE_SELECTION
-
Constructor Summary
ConstructorDescription创建一个空的DISCONTIGUOUS_TREE_SELECTION选择模式的DefaultTreeSelectionModel的新实例。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
向侦听器列表添加PropertyChangeListener。void
addSelectionPath
(TreePath path) 将路径添加到当前选择。void
addSelectionPaths
(TreePath[] paths) 将路径添加到当前选择。void
将x添加到每次所选TreePaths集合更改时通知的侦听器列表中。protected boolean
arePathsContiguous
(TreePath[] paths) 如果路径连续或此对象没有RowMapper,则返回true。protected boolean
canPathsBeAdded
(TreePath[] paths) 用于测试是否可以添加特定的TreePath
集。protected boolean
canPathsBeRemoved
(TreePath[] paths) 如果不会破坏模型的连续性,则返回true。void
清空当前选择。clone()
返回具有相同选择的此对象的克隆。protected void
通知所有为此对象上的树选择事件注册的侦听器。返回最后添加的路径。int
返回导航选择索引。<T extends EventListener>
T[]getListeners
(Class<T> listenerType) 返回当前注册为此模型的所有FooListener
的对象数组。int
返回当前所选TreePaths集的RowMapper获取的最大值。int
返回当前所选TreePaths集的RowMapper获取的最小值。返回在此DefaultTreeSelectionModel
上注册的所有属性更改侦听器的数组。返回能够将TreePath映射到行的RowMapper实例。int
返回所选路径的数量。int
返回选择模式,为SINGLE_TREE_SELECTION、DISCONTIGUOUS_TREE_SELECTION或CONTIGUOUS_TREE_SELECTION之一。返回选择中的第一个路径。TreePath[]
返回选择。int[]
返回以行为单位的选择。返回在此模型上注册的所有树选择侦听器的数组。protected void
确保当前选择的TreePath
对于当前选择模式是有效的。protected void
此方法已过时,其实现现在是一个空操作。boolean
isPathSelected
(TreePath path) 如果路径path
在当前选择中,则返回true。boolean
isRowSelected
(int row) 如果由row
标识的行被选择,则返回true。boolean
如果选择当前为空,则返回true。protected void
notifyPathChange
(Vector<?> changedPaths, TreePath oldLeadSelection) 已过时。从JDK版本1.7开始void
从侦听器列表中删除PropertyChangeListener。void
removeSelectionPath
(TreePath path) 从选择中删除路径。void
removeSelectionPaths
(TreePath[] paths) 从选择中删除路径。void
从每次所选TreePaths集合更改时通知的侦听器列表中删除x。void
更新此对象从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[] pPaths) 设置选择。toString()
返回显示和标识此对象属性的字符串。protected void
更新leadIndex实例变量。
-
Field Details
-
SELECTION_MODE_PROPERTY
选择模式的属性名称。- 参见:
-
changeSupport
用于通知已注册的侦听器。 -
selection
当前选择的路径。如果当前没有选择任何内容,则将为null。 -
listenerList
事件侦听器列表。 -
rowMapper
为给定路径提供行。 -
listSelectionModel
处理维护列表选择模型。RowMapper用于从TreePath映射到行,然后将值放在这里。 -
selectionMode
protected int selectionMode选择模式,将是SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION或DISCONTIGUOUS_TREE_SELECTION之一。 -
leadPath
最后添加的路径。 -
leadIndex
protected int leadIndex选择中导航路径的索引。 -
leadRow
protected int leadRow导航行。
-
-
Constructor Details
-
DefaultTreeSelectionModel
public DefaultTreeSelectionModel()创建一个空的DISCONTIGUOUS_TREE_SELECTION选择模式的DefaultTreeSelectionModel的新实例。
-
-
Method Details
-
setRowMapper
设置RowMapper实例。此实例用于确定特定TreePath的行。- 指定者:
-
setRowMapper
在接口TreeSelectionModel
中 - 参数:
-
newMapper
- 要设置的RowMapper
-
getRowMapper
返回能够将TreePath映射到行的RowMapper实例。- 指定者:
-
getRowMapper
在接口TreeSelectionModel
中 - 返回:
- 能够将TreePath映射到行的RowMapper实例
-
setSelectionMode
public void setSelectionMode(int mode) 设置选择模型,必须是SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION或DISCONTIGUOUS_TREE_SELECTION之一。如果模式不是定义的值之一,则假定为DISCONTIGUOUS_TREE_SELECTION
。如果当前选择对于新模式无效,则可能会更改选择。例如,当将模式更改为
SINGLE_TREE_SELECTION
时选择了三个TreePaths,那么只会保留一个TreePath被选择。由特定实现决定保留哪个TreePath被选择。将模式设置为非定义类型将导致模式变为
DISCONTIGUOUS_TREE_SELECTION
。- 指定者:
-
setSelectionMode
在接口TreeSelectionModel
中 - 参数:
-
mode
- 要设置的选择模式
-
getSelectionMode
public int getSelectionMode()返回选择模式,为SINGLE_TREE_SELECTION、DISCONTIGUOUS_TREE_SELECTION或CONTIGUOUS_TREE_SELECTION之一。- 指定者:
-
getSelectionMode
在接口TreeSelectionModel
中 - 返回:
- 当前选择模式
-
setSelectionPath
将选择设置为路径。如果这代表更改,则会通知TreeSelectionListeners。如果path
为null,则这与调用clearSelection
具有相同效果。- 指定者:
-
setSelectionPath
在接口TreeSelectionModel
中 - 参数:
-
path
- 要选择的新路径
-
setSelectionPaths
设置选择。取决于选择模式,所提供的路径是否作为新选择取决于选择模式。如果提供的数组为null
或为空,则清除选择。如果选择模式为SINGLE_TREE_SELECTION
,则仅使用pPaths
中的第一个路径。如果选择模式为CONTIGUOUS_TREE_SELECTION
并且提供的路径不连续,则仅使用pPaths
中的第一个路径。如果选择模式为DISCONTIGUOUS_TREE_SELECTION
,则使用所有路径。忽略
pPaths
中的所有null
路径。如果这代表了一种变化,则会通知所有注册的
TreeSelectionListener
。主路径设置为最后一个唯一路径。
从
getSelectionPaths
返回的路径与传递给此方法的路径顺序相同。- 指定者:
-
setSelectionPaths
在接口TreeSelectionModel
中 - 参数:
-
pPaths
- 新选择
-
addSelectionPath
将路径添加到当前选择。如果路径当前不在选择中,则会通知TreeSelectionListeners。如果path
为null,则不会产生任何影响。- 指定者:
-
addSelectionPath
在接口TreeSelectionModel
中 - 参数:
-
path
- 要添加到当前选择的新路径
-
addSelectionPaths
将路径添加到当前选择。如果路径中的任何路径当前不在选择中,则会通知TreeSelectionListeners。如果paths
为null,则不会产生任何影响。主路径设置为
paths
中的最后一个元素。如果选择模式为
CONTIGUOUS_TREE_SELECTION
,并且添加新路径会使选择不连续。那么可能会发生两种情况:如果paths
中的TreePaths是连续的,则选择变为这些TreePaths,否则TreePaths不连续,选择变为paths
中的第一个TreePath。- 指定者:
-
addSelectionPaths
在接口TreeSelectionModel
中 - 参数:
-
paths
- 要添加到当前选择的新路径
-
removeSelectionPath
从选择中移除路径。如果路径在选择中,则会通知TreeSelectionListeners。如果path
为null,则不会产生任何影响。- 指定者:
-
removeSelectionPath
在接口TreeSelectionModel
中 - 参数:
-
path
- 要从选择中移除的路径
-
removeSelectionPaths
从选择中移除路径。如果路径中的任何路径在选择中,则会通知TreeSelectionListeners。如果paths
为null,则不会产生任何影响。- 指定者:
-
removeSelectionPaths
在接口TreeSelectionModel
中 - 参数:
-
paths
- 要从选择中移除的路径
-
getSelectionPath
返回选择中的第一个路径。如果当前仅选择了一个项目,则此方法很有用。- 指定者:
-
getSelectionPath
在接口TreeSelectionModel
中 - 返回:
- 选择中的第一个路径
-
getSelectionPaths
返回选择。- 指定者:
-
getSelectionPaths
在接口TreeSelectionModel
中 - 返回:
- 选择
-
getSelectionCount
public int getSelectionCount()返回所选路径的数量。- 指定者:
-
getSelectionCount
在接口TreeSelectionModel
中 - 返回:
- 所选路径的数量
-
isPathSelected
如果路径path
当前在选择中,则返回true。- 指定者:
-
isPathSelected
在接口TreeSelectionModel
中 - 参数:
-
path
- 要查找的路径 - 返回:
-
path
是否在当前选择中
-
isSelectionEmpty
public boolean isSelectionEmpty()如果选择当前为空,则返回true。- 指定者:
-
isSelectionEmpty
在接口TreeSelectionModel
中 - 返回:
- 选择当前是否为空
-
clearSelection
public void clearSelection()清空当前选择。如果这代表当前选择的变化,则会通知选择监听器。- 指定者:
-
clearSelection
在接口TreeSelectionModel
中
-
addTreeSelectionListener
将x添加到每次选定的TreePaths集合更改时通知的侦听器列表中。- 指定者:
-
addTreeSelectionListener
在接口TreeSelectionModel
中 - 参数:
-
x
- 要添加的新侦听器
-
removeTreeSelectionListener
从每次选定的TreePaths集合更改时通知的侦听器列表中移除x。- 指定者:
-
removeTreeSelectionListener
在接口TreeSelectionModel
中 - 参数:
-
x
- 要移除的侦听器
-
getTreeSelectionListeners
返回当前在此模型上注册为树选择侦听器的所有数组。- 返回:
-
所有此模型的
TreeSelectionListener
或如果当前未注册任何树选择侦听器,则返回空数组 - 自:
- 1.4
- 参见:
-
fireValueChanged
通知所有已注册以接收此对象上的树选择事件的侦听器。- 参数:
-
e
- 表征更改的事件 - 参见:
-
getListeners
返回当前在此模型上注册为FooListener
的所有对象的数组。使用addFooListener
方法注册FooListener
。您可以使用类文字(例如
FooListener.class
)指定listenerType
参数。例如,您可以使用以下代码查询DefaultTreeSelectionModel
m
的树选择侦听器:TreeSelectionListener[] tsls = (TreeSelectionListener[])(m.getListeners(TreeSelectionListener.class));
如果不存在此类侦听器,则此方法将返回一个空数组。- 类型参数:
-
T
- 侦听器类型 - 参数:
-
listenerType
- 请求的侦听器类型 - 返回:
-
在此组件上注册为
FooListener
的所有对象的数组,如果尚未添加此类侦听器,则返回空数组 - 抛出:
-
ClassCastException
- 如果listenerType
未指定实现java.util.EventListener
的类或接口 - 自:
- 1.3
- 参见:
-
getSelectionRows
public int[] getSelectionRows()返回以行为单位的选择。从getSelectionPaths
返回的TreePath
和此方法之间不一定是一对一的映射。特别是,如果TreePath
不可见(RowMapper
对应于TreePath
的行返回-1
),则返回的数组中不包括相应的行。例如,如果选择包括两个路径A
和B
,其中A
在第10
行,而B
当前不可见,则此方法返回具有单个条目10
的数组。- 指定者:
-
getSelectionRows
在接口TreeSelectionModel
- 返回:
- 以行为单位的选择
-
getMinSelectionRow
public int getMinSelectionRow()返回当前所选TreePaths集合中从RowMapper获得的最小值。如果没有选中任何内容,或者没有RowMapper,则返回-1。- 指定者:
-
getMinSelectionRow
在接口TreeSelectionModel
- 返回:
- 从当前所选TreePaths集合中的RowMapper获得的最小值
-
getMaxSelectionRow
public int getMaxSelectionRow()返回当前所选TreePaths集合中从RowMapper获得的最大值。如果没有选中任何内容,或者没有RowMapper,则返回-1。- 指定者:
-
getMaxSelectionRow
在接口TreeSelectionModel
- 返回:
- 从当前所选TreePaths集合中的RowMapper获得的最大值
-
isRowSelected
public boolean isRowSelected(int row) 如果由row
标识的行被选中,则返回true。- 指定者:
-
isRowSelected
在接口TreeSelectionModel
- 参数:
-
row
- 要检查的行 - 返回:
- 行是否被选中
-
resetRowSelection
public void resetRowSelection()更新此对象从TreePath到行的映射。当从TreePaths到整数的映射发生变化时(例如,节点已展开),应调用此方法。通常不需要调用此方法,JTree及其相关的监听器会为您调用此方法。如果您正在实现自己的View类,则必须调用此方法。
这将调用
insureRowContinuity
以确保当前选定的TreePaths基于选择模式仍然有效。- 指定者:
-
resetRowSelection
在接口TreeSelectionModel
-
getLeadSelectionRow
public int getLeadSelectionRow()返回主导选择索引。即最后添加的索引。- 指定者:
-
getLeadSelectionRow
在接口TreeSelectionModel
- 返回:
- 主导选择索引
-
getLeadSelectionPath
返回最后添加的路径。这可能与JTree维护的leadSelectionPath属性不同。- 指定者:
-
getLeadSelectionPath
在接口TreeSelectionModel
- 返回:
- 最后添加的路径
-
addPropertyChangeListener
向监听器列表中添加PropertyChangeListener。该监听器将注册所有属性。当选择模式更改时,将触发PropertyChangeEvent。
- 指定者:
-
addPropertyChangeListener
在接口TreeSelectionModel
- 参数:
-
listener
- 要添加的PropertyChangeListener
-
removePropertyChangeListener
从监听器列表中移除PropertyChangeListener。这将删除为所有属性注册的PropertyChangeListener。- 指定者:
-
removePropertyChangeListener
在接口TreeSelectionModel
- 参数:
-
listener
- 要移除的PropertyChangeListener
-
getPropertyChangeListeners
返回在此DefaultTreeSelectionModel
上注册的所有属性更改监听器的数组。- 返回:
-
所有此模型的
PropertyChangeListener
或如果当前未注册任何属性更改监听器,则返回空数组 - 自:
- 1.4
- 参见:
-
insureRowContinuity
protected void insureRowContinuity()确保当前选定的TreePath
对于当前选择模式是有效的。如果选择模式为CONTIGUOUS_TREE_SELECTION
并且存在RowMapper
,则会确保所有行是连续的,即,排序后所有行都是有序的且没有间隙。如果选择不连续,则将重置选择以包含第一组连续行(排序后)。如果选择模式为
SINGLE_TREE_SELECTION
并且选择了多个TreePath,则将重置选择以包含当前选定的第一个路径。 -
arePathsContiguous
如果路径是连续的,或者此对象没有RowMapper,则返回true。- 参数:
-
paths
- 要检查的路径数组 - 返回:
- 路径是否连续,或者此对象没有RowMapper
-
canPathsBeAdded
用于测试特定一组TreePath
是否可以添加。如果paths
为null(或空),或者此对象没有RowMapper,或者当前未选中任何内容,或者选择模式为DISCONTIGUOUS_TREE_SELECTION
,或者将路径添加到当前选择仍然导致一组连续的TreePath
,则返回true。- 参数:
-
paths
- 要检查的TreePaths
数组 - 返回:
-
特定一组
TreePaths
是否可以添加
-
canPathsBeRemoved
如果可以在不破坏模型连续性的情况下移除路径,则返回true。这是相当昂贵的操作。- 参数:
-
paths
- 要检查的TreePath
数组 - 返回:
- 是否可以在不破坏模型连续性的情况下移除路径
-
notifyPathChange
Deprecated.As of JDK version 1.7通知路径更改的监听器。changePaths应包含PathPlaceHolder的实例。- 参数:
-
changedPaths
- 更改的路径向量 -
oldLeadSelection
- 旧的选择路径
-
updateLeadIndex
protected void updateLeadIndex()更新leadIndex实例变量。 -
insureUniqueness
protected void insureUniqueness()此方法已过时,其实现现在是一个空操作。它仍然由setSelectionPaths和addSelectionPaths调用,但仅用于向后兼容性。 -
toString
返回显示和标识此对象属性的字符串。 -
clone
返回具有相同选择的此对象的克隆。此方法不会复制选择监听器和属性监听器。- 覆盖:
-
clone
在类Object
- 返回:
- 此实例的克隆。
- 抛出:
-
CloneNotSupportedException
- 该类的实例永远不会抛出此异常 - 参见:
-