|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.swing.tree
接口 TreeSelectionModel
-
public interface TreeSelectionModel
此接口表示树选择组件的当前状态。有关使用树选择模型的信息和示例,请参阅《The Java Tutorial》中的 How to Use Trees 一节。
树选择的状态由 TreePath 集合描述,也可以是整数集合。从 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 是添加(或设置)的最后一个路径。前导行则是对应于 TreePath 的行,由 RowMapper 确定。
字段摘要 | |
---|---|
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,每次选定的 TreePath 集合发生更改时,这些侦听器都会得到通知。 |
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) 从每次已选的 TreePath 集合发生更改时都会得到通知的侦听器列表中移除 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
-
一次只能选择一个路径。
- 另请参见:
- 常量字段值
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。 -
getSelectionMode
int getSelectionMode()
-
返回当前选择的模式(
SINGLE_TREE_SELECTION
、CONTIGUOUS_TREE_SELECTION
或DISCONTIGUOUS_TREE_SELECTION
之一)。 -
setSelectionPath
void setSelectionPath(TreePath path)
-
为该选择设置路径。如果这表示一个更改,则通知 TreeSelectionListener。如果
path
为 null,则这与调用clearSelection
具有相同的效果。 -
- 参数:
path
- 要选择的新路径
setSelectionPaths
void setSelectionPaths(TreePath[] paths)
-
为该选择设置路径。如果这表示一个更改,则通知 TreeSelectionListener。如果
paths
为 null,则这与调用clearSelection
具有相同的效果。 -
- 参数:
paths
- 新的选择
addSelectionPath
void addSelectionPath(TreePath path)
-
将路径添加到当前的选择中。如果路径当前不在选择中,则通知 TreeSelectionListener。如果
path
为 null,则此方法无效。 -
- 参数:
path
- 添加到当前选择中的新路径