public class DefaultTreeModel extends Object implements Serializable, TreeModel
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对所有JavaBeans的长期存储的支持已经添加到java.beans
包中。 请参阅XMLEncoder
。
Modifier and Type | Field and Description |
---|---|
protected boolean |
asksAllowsChildren
确定
isLeaf 方法如何确定节点是否为叶节点。
|
protected EventListenerList |
listenerList
听众。
|
protected TreeNode |
root
树的根。
|
Constructor and Description |
---|
DefaultTreeModel(TreeNode root)
创建一个树,其中任何节点可以拥有子节点。
|
DefaultTreeModel(TreeNode root, boolean asksAllowsChildren)
创建一个树,指定任何节点是否可以有子节点,或者只有某些节点可以有子节点。
|
Modifier and Type | Method and Description |
---|---|
void |
addTreeModelListener(TreeModelListener l)
添加树树更改后发布的TreeModelEvent的侦听器。
|
boolean |
asksAllowsChildren()
告诉叶节点如何确定。
|
protected void |
fireTreeNodesChanged(Object source, Object[] path, int[] childIndices, Object[] children)
通知所有在此事件类型上通知有兴趣的听众。
|
protected void |
fireTreeNodesInserted(Object source, Object[] path, int[] childIndices, Object[] children)
通知所有在此事件类型上通知有兴趣的听众。
|
protected void |
fireTreeNodesRemoved(Object source, Object[] path, int[] childIndices, Object[] children)
通知所有在此事件类型上通知有兴趣的听众。
|
protected void |
fireTreeStructureChanged(Object source, Object[] path, int[] childIndices, Object[] children)
通知所有在此事件类型上通知有兴趣的听众。
|
Object |
getChild(Object parent, int index)
返回父节点的子数组中的
父索引
的索引孩子。
|
int |
getChildCount(Object parent)
返回
父节点的子节点数。
|
int |
getIndexOfChild(Object parent, Object child)
返回父项中的子项的索引。
|
<T extends EventListener> |
getListeners(类<T> listenerType)
返回当前注册为
FooListener 的所有对象的数组。
|
TreeNode[] |
getPathToRoot(TreeNode aNode)
构建节点直到并包括根节点的父节点,其中原始节点是返回的数组中的最后一个元素。
|
protected TreeNode[] |
getPathToRoot(TreeNode aNode, int depth)
构建节点直到并包括根节点的父节点,其中原始节点是返回的数组中的最后一个元素。
|
Object |
getRoot()
返回树的根。
|
TreeModelListener[] |
getTreeModelListeners()
返回在此模型上注册的所有树模型侦听器的数组。
|
void |
insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)
调用此选项将parentChild插入到父项子节点的位置索引中。
|
boolean |
isLeaf(Object node)
返回指定节点是否为叶节点。
|
void |
nodeChanged(TreeNode node)
在更改树中如何表示节点之后调用此方法。
|
void |
nodesChanged(TreeNode node, int[] childIndices)
在更改了如何在树中表示由childIndicies标识的子项后调用此方法。
|
void |
nodeStructureChanged(TreeNode node)
如果您完全改变了节点及其子节点的子节点,则调用此方法
|
void |
nodesWereInserted(TreeNode node, int[] childIndices)
在将一些TreeNodes插入节点后调用此方法。
|
void |
nodesWereRemoved(TreeNode node, int[] childIndices, Object[] removedChildren)
从节点中删除一些TreeNodes后,调用此方法。
|
void |
reload()
如果您修改了此型号所依赖的
TreeNode ,则调用此方法。
|
void |
reload(TreeNode node)
如果您修改了此型号所依赖的
TreeNode ,则调用此方法。
|
void |
removeNodeFromParent(MutableTreeNode node)
消息此消息从其父节点删除节点。
|
void |
removeTreeModelListener(TreeModelListener l)
删除之前使用
addTreeModelListener()添加的监听器。
|
void |
setAsksAllowsChildren(boolean newValue)
设置是否通过向TreeNodes请求getAllowsChildren()或isLeaf()来测试叶片性。
|
void |
setRoot(TreeNode root)
将根设置为
root 。
|
void |
valueForPathChanged(TreePath path, Object newValue)
这设置由路径标识的TreeNode的用户对象,并发布一个节点更改。
|
protected TreeNode root
protected EventListenerList listenerList
protected boolean asksAllowsChildren
isLeaf
方法如果节点是叶节点,则isLeaf
。
如果为true,则如果节点不允许孩子,则节点是叶节点。
(如果它允许孩子,它不是一个叶节点,即使没有孩子)。例如,您可以区分文件系统中的文件夹节点和文件节点。
如果该值为false,则任何没有子节点的节点都是叶节点,任何节点都可以获取子节点。
@ConstructorProperties(value="root") public DefaultTreeModel(TreeNode root)
root
- 作为
root
的TreeNode对象
DefaultTreeModel(TreeNode, boolean)
public DefaultTreeModel(TreeNode root, boolean asksAllowsChildren)
root
- 作为
root
的TreeNode对象
asksAllowsChildren
- 一个布尔值,如果任何一个节点可以有子节点,则为false,如果要求每个节点查看是否有子节点,则为true
asksAllowsChildren
public void setAsksAllowsChildren(boolean newValue)
public boolean asksAllowsChildren()
asksAllowsChildren
public void setRoot(TreeNode root)
root
。
一个null root
意味着树是不显示,是合法的。
public int getIndexOfChild(Object parent, Object child)
null
,返回-1。
getIndexOfChild
在界面
TreeModel
parent
- 从该数据源获取的树中的一个注释
child
- 我们感兴趣的节点
null
public Object getChild(Object parent, int index)
public int getChildCount(Object parent)
getChildCount
在界面
TreeModel
parent
- 从该数据源获取的树中的一个节点
public boolean isLeaf(Object node)
askAllowsChildren
设置。
isLeaf
在接口
TreeModel
node
- 要检查的节点
asksAllowsChildren
,
TreeModel.isLeaf(java.lang.Object)
public void reload()
TreeNode
,则调用此方法。
该模型将通知所有的监听器模型已经改变。
public void valueForPathChanged(TreePath path, Object newValue)
valueForPathChanged
在界面
TreeModel
path
- 用户已更改的节点的路径
newValue
-
newValue
的新值
public void insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)
public void removeNodeFromParent(MutableTreeNode node)
public void nodeChanged(TreeNode node)
public void reload(TreeNode node)
TreeNode
,则调用此方法。
该模型将通知所有的监听器模型已经在给定节点之下变化。
node
- 模型
node
的节点已更改
public void nodesWereInserted(TreeNode node, int[] childIndices)
public void nodesWereRemoved(TreeNode node, int[] childIndices, Object[] removedChildren)
public void nodesChanged(TreeNode node, int[] childIndices)
public void nodeStructureChanged(TreeNode node)
public TreeNode[] getPathToRoot(TreeNode aNode)
aNode
- 获取路径的TreeNode
protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
aNode
- 获取路径的TreeNode
depth
- 一个int给出已经为根(在递归调用)上已经采取的步骤数,用于调整返回的数组的大小
public void addTreeModelListener(TreeModelListener l)
addTreeModelListener
在界面
TreeModel
l
- 要添加的监听器
removeTreeModelListener(javax.swing.event.TreeModelListener)
public void removeTreeModelListener(TreeModelListener l)
removeTreeModelListener
在界面
TreeModel
l
- 要删除的侦听器
addTreeModelListener(javax.swing.event.TreeModelListener)
public TreeModelListener[] getTreeModelListeners()
TreeModelListener
s或一个空数组,如果没有树模型侦听器当前注册
addTreeModelListener(javax.swing.event.TreeModelListener)
,
removeTreeModelListener(javax.swing.event.TreeModelListener)
protected void fireTreeNodesChanged(Object source, Object[] path, int[] childIndices, Object[] children)
source
- 源的TreeModelEvent
;
通常为this
path
- 改变节点的父节点的路径;
使用null
来识别根已经改变
childIndices
- 变化元素的指标
children
- 已更改的元素
protected void fireTreeNodesInserted(Object source, Object[] path, int[] childIndices, Object[] children)
source
- 源的TreeModelEvent
;
通常为this
path
- 添加到节点的父节点的路径
childIndices
- 新元素的指标
children
- 新元素
protected void fireTreeNodesRemoved(Object source, Object[] path, int[] childIndices, Object[] children)
source
- 源的TreeModelEvent
;
通常为this
path
- 从父节点删除节点的路径
childIndices
- 已移除元素的索引
children
- 删除的元素
protected void fireTreeStructureChanged(Object source, Object[] path, int[] childIndices, Object[] children)
source
- 源的TreeModelEvent
;
通常为this
path
- 已更改的结构的父对象的路径;
使用null
来识别根已经改变
childIndices
- 受影响元素的指标
children
- 受影响的元素
public <T extends EventListener> T[] getListeners(类<T> listenerType)
FooListener
的所有对象的数组。
FooListener
使用addFooListener
。
您可以使用类文字指定listenerType
参数,例如FooListener.class
。 例如,您可以查询DefaultTreeModel
m
与下面的代码的树模型侦听器:
TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));
如果没有这样的侦听器存在,这个方法返回一个空数组。
listenerType
- 所请求的听众的类型;
该参数应指定从java.util.EventListener
下降的java.util.EventListener
FooListener
的所有对象的数组,如果没有添加此类侦听器,则为空数组
ClassCastException
- 如果
listenerType
没有指定实现java.util.EventListener的类或
java.util.EventListener
getTreeModelListeners()