- 所有已实现的接口:
-
Serializable,Cloneable,TreeSelectionModel
- 直接已知的子类:
-
JTree.EmptySelectionModel
resetRowSelection是从更新所选路径的任何方法中调用的。如果您对这些方法中的任何一个进行子类化以过滤允许选择的内容,请确保如果您没有调用super,则消息resetRowSelection。警告:此类的序列化对象将与未来的Swing版本不兼容。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将对所有JavaBeans的长期存储支持添加到java.beans包中。请参阅XMLEncoder。
- 参见:
-
Field Summary
FieldsModifier 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
ConstructorsConstructorDescription创建一个空的DISCONTIGUOUS_TREE_SELECTION选择模式的DefaultTreeSelectionModel的新实例。 -
Method Summary
Modifier and TypeMethodDescriptionvoid向侦听器列表添加PropertyChangeListener。voidaddSelectionPath(TreePath path) 将路径添加到当前选择。voidaddSelectionPaths(TreePath[] paths) 将路径添加到当前选择。void将x添加到每次所选TreePaths集合更改时通知的侦听器列表中。protected booleanarePathsContiguous(TreePath[] paths) 如果路径连续或此对象没有RowMapper,则返回true。protected booleancanPathsBeAdded(TreePath[] paths) 用于测试是否可以添加特定的TreePath集。protected booleancanPathsBeRemoved(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此方法已过时,其实现现在是一个空操作。booleanisPathSelected(TreePath path) 如果路径path在当前选择中,则返回true。booleanisRowSelected(int row) 如果由row标识的行被选择,则返回true。boolean如果选择当前为空,则返回true。protected voidnotifyPathChange(Vector<?> changedPaths, TreePath oldLeadSelection) 已过时。从JDK版本1.7开始void从侦听器列表中删除PropertyChangeListener。voidremoveSelectionPath(TreePath path) 从选择中删除路径。voidremoveSelectionPaths(TreePath[] paths) 从选择中删除路径。void从每次所选TreePaths集合更改时通知的侦听器列表中删除x。void更新此对象从TreePath到行的映射。voidsetRowMapper(RowMapper newMapper) 设置RowMapper实例。voidsetSelectionMode(int mode) 设置选择模型,必须是SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION或DISCONTIGUOUS_TREE_SELECTION之一。voidsetSelectionPath(TreePath path) 设置选择为路径。voidsetSelectionPaths(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参数。例如,您可以使用以下代码查询DefaultTreeSelectionModelm的树选择侦听器: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- 该类的实例永远不会抛出此异常 - 参见:
-