|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.swing.tree.DefaultTreeSelectionModel
public class DefaultTreeSelectionModel
TreeSelectionModel 的默认实现。每当 selection 中的路径(不是行)发生更改时,侦听器就会获得通知。为了能够跟踪行的更改,您可能希望获得一个侦听器,用于树上的扩展事件,并从该位置测试更改。
从所有更新选择路径的方法中调用 resetRowSelection。如果对这些方法中的任何方法创建子类来过滤允许选择的内容,并且没有通知超类,请确定并通知 resetRowSelection
。
警告:此类的序列化对象将与以后的 Swing 版本不兼容。当前的序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
JTree
字段摘要 | |
---|---|
protected SwingPropertyChangeSupport |
changeSupport
用于接收通知的注册侦听器。 |
protected int |
leadIndex
selection 中前导路径的索引。 |
protected TreePath |
leadPath
添加的最后一条路径。 |
protected int |
leadRow
前导行。 |
protected EventListenerList |
listenerList
事件侦听器列表。 |
protected DefaultListSelectionModel |
listSelectionModel
维护列表选择模型的句柄。 |
protected RowMapper |
rowMapper
提供给定路径的行。 |
protected TreePath[] |
selection
当前选择的路径。 |
static String |
SELECTION_MODE_PROPERTY
selectionMode 的属性名称。 |
protected int |
selectionMode
用于 selection 的模式,将是 SINGLE_TREE_SELECTION、CONTIGUOUS_TREE_SELECTION 或 DISCONTIGUOUS_TREE_SELECTION。 |
从接口 javax.swing.tree.TreeSelectionModel 继承的字段 |
---|
CONTIGUOUS_TREE_SELECTION, DISCONTIGUOUS_TREE_SELECTION, SINGLE_TREE_SELECTION |
构造方法摘要 | |
---|---|
DefaultTreeSelectionModel()
使用 DISCONTIGUOUS_TREE_SELECTION 的选择模式创建空的 DefaultTreeSelectionModel 新实例。 |
方法摘要 | ||
---|---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener)
将 PropertyChangeListener 添加到侦听器列表。 |
|
void |
addSelectionPath(TreePath path)
将路径添加到当前的 selection 中。 |
|
void |
addSelectionPaths(TreePath[] paths)
向当前的 selection 中添加路径。 |
|
void |
addTreeSelectionListener(TreeSelectionListener x)
向每次已选的 TreePaths 集合发生更改时都会得到通知的侦听器列表添加 x。 |
|
protected boolean |
arePathsContiguous(TreePath[] paths)
如果路径是连续的,或者此对象没有 RowMapper,则返回 true。 |
|
protected boolean |
canPathsBeAdded(TreePath[] paths)
用于测试是否可以添加特定的 TreePath 集合。 |
|
protected boolean |
canPathsBeRemoved(TreePath[] paths)
如果可以移除该路径而不中断该模型的连续性,则返回 true。 |
|
void |
clearSelection()
清空当前的 selection。 |
|
Object |
clone()
返回具有相同 selection 的此对象的副本。 |
|
protected void |
fireValueChanged(TreeSelectionEvent e)
通知已注册此对象上的树选择事件的所有侦听器。 |
|
TreePath |
getLeadSelectionPath()
返回添加的最后一条路径。 |
|
int |
getLeadSelectionRow()
返回 lead selection 索引。 |
|
|
getListeners(Class<T> listenerType)
返回当前已在此模型上注册为 FooListener 的所有对象组成的数组。 |
|
int |
getMaxSelectionRow()
返回从 RowMapper 获取的已选择的 TreePath 的当前集合中的最大值。 |
|
int |
getMinSelectionRow()
返回从 RowMapper 获取的已选择的 TreePath 的当前集合中的最小值。 |
|
PropertyChangeListener[] |
getPropertyChangeListeners()
返回此 DefaultTreeSelectionModel 上注册的所有属性更改侦听器组成的数组。 |
|
RowMapper |
getRowMapper()
返回能够将 TreePath 映射到行的 RowMapper 实例。 |
|
int |
getSelectionCount()
返回选择的路径数。 |
|
int |
getSelectionMode()
返回选择模式,它是 SINGLE_TREE_SELECTION 、DISCONTIGUOUS_TREE_SELECTION 或 CONTIGUOUS_TREE_SELECTION 之一。 |
|
TreePath |
getSelectionPath()
返回 selection 中的第一个路径。 |
|
TreePath[] |
getSelectionPaths()
返回 selection 中的路径。 |
|
int[] |
getSelectionRows()
返回当前已选的所有行。 |
|
TreeSelectionListener[] |
getTreeSelectionListeners()
返回已在此模型上注册的所有树选择侦听器组成的数组。 |
|
protected void |
insureRowContinuity()
确保当前选择的 TreePath 对于当前选择模式是有效的。 |
|
protected void |
insureUniqueness()
此方法已过时,并且其实现现在是一个 noop。 |
|
boolean |
isPathSelected(TreePath path)
如果当前选择了路径 path ,则返回 true。 |
|
boolean |
isRowSelected(int row)
如果选择了由 row 标识的行,则返回 true。 |
|
boolean |
isSelectionEmpty()
如果 selection 当前为空,则返回 true。 |
|
protected void |
notifyPathChange(Vector<javax.swing.tree.PathPlaceHolder> changedPaths,
TreePath oldLeadSelection)
通知侦听器路径中的更改。 |
|
void |
removePropertyChangeListener(PropertyChangeListener listener)
从侦听器列表移除 PropertyChangeListener。 |
|
void |
removeSelectionPath(TreePath path)
从 selection 中移除路径。 |
|
void |
removeSelectionPaths(TreePath[] paths)
从 selection 中移除路径。 |
|
void |
removeTreeSelectionListener(TreeSelectionListener x)
从每次已选的 TreePaths 集合发生更改时都会得到通知的侦听器列表中移除 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[] pPaths)
为该选择设置路径中的路径。 |
|
String |
toString()
返回显示并标识此对象属性的字符串。 |
|
protected void |
updateLeadIndex()
更新 leadIndex 实例变量。 |
从类 java.lang.Object 继承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
public static final String SELECTION_MODE_PROPERTY
protected SwingPropertyChangeSupport changeSupport
protected TreePath[] selection
protected EventListenerList listenerList
protected transient RowMapper rowMapper
protected DefaultListSelectionModel listSelectionModel
protected int selectionMode
protected TreePath leadPath
protected int leadIndex
protected int leadRow
构造方法详细信息 |
---|
public DefaultTreeSelectionModel()
方法详细信息 |
---|
public void setRowMapper(RowMapper newMapper)
TreeSelectionModel
中的 setRowMapper
public RowMapper getRowMapper()
TreeSelectionModel
中的 getRowMapper
public void setSelectionMode(int mode)
DISCONTIGUOUS_TREE_SELECTION
。
如果当前的 selection 对新模式无效,这可以更改该 selection。例如,如果将模式更改为 SINGLE_TREE_SELECTION
时选中三个 TreePath,则只有一个 TreePath 仍然被选中。由特定的实现来决定保留选定哪一个 TreePath。
将该模式设置为定义的类型以外的其他类型,将导致该模式变成 DISCONTIGUOUS_TREE_SELECTION
。
TreeSelectionModel
中的 setSelectionMode
public int getSelectionMode()
SINGLE_TREE_SELECTION
、DISCONTIGUOUS_TREE_SELECTION
或 CONTIGUOUS_TREE_SELECTION
之一。
TreeSelectionModel
中的 getSelectionMode
public void setSelectionPath(TreePath path)
path
为 null,则这与调用 clearSelection
具有相同的效果。
TreeSelectionModel
中的 setSelectionPath
path
- 要选择的新路径public void setSelectionPaths(TreePath[] pPaths)
如果 paths
为 null,则这与调用 clearSelection
具有相同的效果。
将前导路径设置为 pPaths
中的最后一个路径。
如果选择模式为 CONTIGUOUS_TREE_SELECTION
,并且添加新路径会使该选择不连续,则将该选择重新设置为 paths
中的第一个 TreePath。
TreeSelectionModel
中的 setSelectionPaths
pPaths
- 新的选择public void addSelectionPath(TreePath path)
path
为 null,则通知无效。
TreeSelectionModel
中的 addSelectionPath
path
- 添加到当前 selection 中的新路径public void addSelectionPaths(TreePath[] paths)
paths
为 null,则此方法无效。
将前导路径设置为 paths
中的最后元素。
如果选择模式为 CONTIGUOUS_TREE_SELECTION
,则添加新的路径会使选择不连续。那么可导致两种结果:如果 paths
中的 TreePaths 是连续的,则该选择会变为这些 TreePaths,相反,如果 TreePaths 不是连续的,则该选择会变为 paths
中的第一个 TreePath。
TreeSelectionModel
中的 addSelectionPaths
paths
- 添加到当前 selection 的新路径public void removeSelectionPath(TreePath path)
path
为 null,则此方法无效。
TreeSelectionModel
中的 removeSelectionPath
path
- 要从选择中移除的路径public void removeSelectionPaths(TreePath[] paths)
paths
为 null,则此方法无效。
TreeSelectionModel
中的 removeSelectionPaths
paths
- 从 selection 中移除的路径public TreePath getSelectionPath()
TreeSelectionModel
中的 getSelectionPath
public TreePath[] getSelectionPaths()
TreeSelectionModel
中的 getSelectionPaths
public int getSelectionCount()
TreeSelectionModel
中的 getSelectionCount
public boolean isPathSelected(TreePath path)
path
,则返回 true。
TreeSelectionModel
中的 isPathSelected
public boolean isSelectionEmpty()
TreeSelectionModel
中的 isSelectionEmpty
public void clearSelection()
TreeSelectionModel
中的 clearSelection
public void addTreeSelectionListener(TreeSelectionListener x)
TreeSelectionModel
中的 addTreeSelectionListener
x
- 要添加的新侦听器public void removeTreeSelectionListener(TreeSelectionListener x)
TreeSelectionModel
中的 removeTreeSelectionListener
x
- 要移除的侦听器public TreeSelectionListener[] getTreeSelectionListeners()
TreeSelectionListener
,如果当前没有已注册的树选择侦听器,则返回一个空数组。addTreeSelectionListener(javax.swing.event.TreeSelectionListener)
,
removeTreeSelectionListener(javax.swing.event.TreeSelectionListener)
protected void fireValueChanged(TreeSelectionEvent e)
addTreeSelectionListener(javax.swing.event.TreeSelectionListener)
,
EventListenerList
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
FooListener
的所有对象组成的数组。FooListener
是用 addFooListener
方法注册的。
可以使用 class 字面值来指定 listenerType
参数,如 FooListener.class
。例如,可以通过下面的代码查询 DefaultTreeSelectionModel
m
的树选择侦听器:
TreeSelectionListener[] tsls = (TreeSelectionListener[])(m.getListeners(TreeSelectionListener.class));如果不存在这样的侦听器,则此方法将返回一个空数组。
listenerType
- 所请求侦听器的类型;该参数应该指定一个从 java.util.EventListener
继承的接口
FooListener
的所有对象的数组,如果没有添加这样的侦听器,则返回一个空数组
ClassCastException
- 如果 listenerType
没有指定实现 java.util.EventListener
的类或接口getTreeSelectionListeners()
,
getPropertyChangeListeners()
public int[] getSelectionRows()
TreeSelectionModel
中的 getSelectionRows
public int getMinSelectionRow()
TreeSelectionModel
中的 getMinSelectionRow
public int getMaxSelectionRow()
TreeSelectionModel
中的 getMaxSelectionRow
public boolean isRowSelected(int row)
row
标识的行,则返回 true。
TreeSelectionModel
中的 isRowSelected
public void resetRowSelection()
通常不必调用此方法,JTree 及其相关的侦听器将为您调用它。如果您正在实现自已的 View 类,则必须调用该方法。
这将调用 insureRowContinuity
,以确保当前选择的 TreePath 基于选择模式仍然有效。
TreeSelectionModel
中的 resetRowSelection
public int getLeadSelectionRow()
TreeSelectionModel
中的 getLeadSelectionRow
public TreePath getLeadSelectionPath()
TreeSelectionModel
中的 getLeadSelectionPath
public void addPropertyChangeListener(PropertyChangeListener listener)
当选择模式更改时,将激发 PropertyChangeEvent。
TreeSelectionModel
中的 addPropertyChangeListener
listener
- 要添加的 PropertyChangeListenerpublic void removePropertyChangeListener(PropertyChangeListener listener)
TreeSelectionModel
中的 removePropertyChangeListener
listener
- 要移除的 PropertyChangeListenerpublic PropertyChangeListener[] getPropertyChangeListeners()
DefaultTreeSelectionModel
上注册的所有属性更改侦听器组成的数组。
PropertyChangeListener
,如果当前没有注册的属性更改侦听器,则返回一个空数组addPropertyChangeListener(java.beans.PropertyChangeListener)
,
removePropertyChangeListener(java.beans.PropertyChangeListener)
protected void insureRowContinuity()
TreePath
对于当前选择模式是有效的。如果选择模式为 CONTIGUOUS_TREE_SELECTION
,并且 RowMapper
存在,则此方法将确保所有的行是连续的,即:排序时,所有的行都是有顺序的,并且没有间隙。如果选择不是连续的,则重设该选择,以包含在排序时连续行的第一个设置。
如果选择模式为 SINGLE_TREE_SELECTION
,并且选择了多个 TreePath,则重设该选择,以包含当前选择的第一个路径。
protected boolean arePathsContiguous(TreePath[] paths)
protected boolean canPathsBeAdded(TreePath[] paths)
TreePath
集合。如果 paths
为 null(或空),或此对象没有 RowMapper,或当前没有选择任何内容,或选择模式为 DISCONTIGUOUS_TREE_SELECTION
,或将该路径添加到当前的 selection 仍得到 TreePath
的连续集,则此方法返回 true。
protected boolean canPathsBeRemoved(TreePath[] paths)
protected void notifyPathChange(Vector<javax.swing.tree.PathPlaceHolder> changedPaths, TreePath oldLeadSelection)
protected void updateLeadIndex()
protected void insureUniqueness()
public String toString()
Object
中的 toString
public Object clone() throws CloneNotSupportedException
Object
中的 clone
CloneNotSupportedException
- 此类的实例从不抛出Cloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。