Class DefaultTreeModel
- All Implemented Interfaces:
-
Serializable
,TreeModel
public class DefaultTreeModel extends Object implements Serializable, TreeModel
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans has been added to the java.beans
package. Please see XMLEncoder
.
Field Summary
Modifier and Type | Field | Description |
---|---|---|
protected boolean |
asksAllowsChildren |
Determines how the isLeaf method figures out if a node is a leaf node. |
protected EventListenerList |
listenerList |
Listeners. |
protected TreeNode |
root |
Root of the tree. |
Constructor Summary
Constructor | Description |
---|---|
DefaultTreeModel |
Creates a tree in which any node can have children. |
DefaultTreeModel |
Creates a tree specifying whether any node can have children, or whether only certain nodes can have children. |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
void |
addTreeModelListener |
Adds a listener for the TreeModelEvent posted after the tree changes. |
boolean |
asksAllowsChildren() |
Tells how leaf nodes are determined. |
protected void |
fireTreeNodesChanged |
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireTreeNodesInserted |
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireTreeNodesRemoved |
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireTreeStructureChanged |
Notifies all listeners that have registered interest for notification on this event type. |
Object |
getChild |
Returns the child of parent at index index in the parent's child array. |
int |
getChildCount |
Returns the number of children of parent. |
int |
getIndexOfChild |
Returns the index of child in parent. |
<T extends EventListener> |
getListeners |
Returns an array of all the objects currently registered as FooListener s upon this model. |
TreeNode[] |
getPathToRoot |
Builds the parents of node up to and including the root node, where the original node is the last element in the returned array. |
protected TreeNode[] |
getPathToRoot |
Builds the parents of node up to and including the root node, where the original node is the last element in the returned array. |
Object |
getRoot() |
Returns the root of the tree. |
TreeModelListener[] |
getTreeModelListeners() |
Returns an array of all the tree model listeners registered on this model. |
void |
insertNodeInto |
Invoked this to insert newChild at location index in parents children. |
boolean |
isLeaf |
Returns whether the specified node is a leaf node. |
void |
nodeChanged |
Invoke this method after you've changed how node is to be represented in the tree. |
void |
nodesChanged |
Invoke this method after you've changed how the children identified by childIndicies are to be represented in the tree. |
void |
nodeStructureChanged |
Invoke this method if you've totally changed the children of node and its children's children... |
void |
nodesWereInserted |
Invoke this method after you've inserted some TreeNodes into node. |
void |
nodesWereRemoved |
Invoke this method after you've removed some TreeNodes from node. |
void |
reload() |
Invoke this method if you've modified the TreeNode s upon which this model depends. |
void |
reload |
Invoke this method if you've modified the TreeNode s upon which this model depends. |
void |
removeNodeFromParent |
Message this to remove node from its parent. |
void |
removeTreeModelListener |
Removes a listener previously added with addTreeModelListener(). |
void |
setAsksAllowsChildren |
Sets whether or not to test leafness by asking getAllowsChildren() or isLeaf() to the TreeNodes. |
void |
setRoot |
Sets the root to root . |
void |
valueForPathChanged |
This sets the user object of the TreeNode identified by path and posts a node changed. |
Field Details
root
protected TreeNode root
listenerList
protected EventListenerList listenerList
asksAllowsChildren
protected boolean asksAllowsChildren
isLeaf
method figures out if a node is a leaf node. If true, a node is a leaf node if it does not allow children. (If it allows children, it is not a leaf node, even if no children are present.) That lets you distinguish between folder nodes and file nodes in a file system, for example. If this value is false, then any node which has no children is a leaf node, and any node may acquire children.
Constructor Details
DefaultTreeModel
@ConstructorProperties("root") public DefaultTreeModel(TreeNode root)
- Parameters:
-
root
- a TreeNode object that is the root of the tree - See Also:
DefaultTreeModel
public DefaultTreeModel(TreeNode root, boolean asksAllowsChildren)
- Parameters:
-
root
- a TreeNode object that is the root of the tree -
asksAllowsChildren
- a boolean, false if any node can have children, true if each node is asked to see if it can have children - See Also:
Method Details
setAsksAllowsChildren
public void setAsksAllowsChildren(boolean newValue)
- Parameters:
-
newValue
- if true, getAllowsChildren() is messaged, otherwise isLeaf() is messaged
asksAllowsChildren
public boolean asksAllowsChildren()
- Returns:
- true if only nodes which do not allow children are leaf nodes, false if nodes which have no children (even if allowed) are leaf nodes
- See Also:
setRoot
public void setRoot(TreeNode root)
root
. A null root
implies the tree is to display nothing, and is legal.- Parameters:
-
root
- new value of tree root
getRoot
public Object getRoot()
getIndexOfChild
public int getIndexOfChild(Object parent, Object child)
null
, returns -1.- Specified by:
-
getIndexOfChild
in interfaceTreeModel
- Parameters:
-
parent
- a note in the tree, obtained from this data source -
child
- the node we are interested in - Returns:
- the index of the child in the parent, or -1 if either the parent or the child is
null
getChild
public Object getChild(Object parent, int index)
getChildCount
public int getChildCount(Object parent)
- Specified by:
-
getChildCount
in interfaceTreeModel
- Parameters:
-
parent
- a node in the tree, obtained from this data source - Returns:
- the number of children of the node parent
isLeaf
public boolean isLeaf(Object node)
askAllowsChildren
setting.reload
public void reload()
TreeNode
s upon which this model depends. The model will notify all of its listeners that the model has changed.valueForPathChanged
public void valueForPathChanged(TreePath path, Object newValue)
- Specified by:
-
valueForPathChanged
in interfaceTreeModel
- Parameters:
-
path
- path to the node that the user has altered -
newValue
- the new value from the TreeCellEditor
insertNodeInto
public void insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)
- Parameters:
-
newChild
- child node to be inserted -
parent
- node to which children new node will be added -
index
- index of parent's children
removeNodeFromParent
public void removeNodeFromParent(MutableTreeNode node)
- Parameters:
-
node
- the node to be removed from it's parrent
nodeChanged
public void nodeChanged(TreeNode node)
- Parameters:
-
node
- the changed node
reload
public void reload(TreeNode node)
TreeNode
s upon which this model depends. The model will notify all of its listeners that the model has changed below the given node.- Parameters:
-
node
- the node below which the model has changed
nodesWereInserted
public void nodesWereInserted(TreeNode node, int[] childIndices)
- Parameters:
-
node
- parent node which children count been incremented -
childIndices
- indexes of inserted children
nodesWereRemoved
public void nodesWereRemoved(TreeNode node, int[] childIndices, Object[] removedChildren)
- Parameters:
-
node
- parent node which childred were removed -
childIndices
- indexes of removed childs -
removedChildren
- array of the children objects that were removed
nodesChanged
public void nodesChanged(TreeNode node, int[] childIndices)
- Parameters:
-
node
- changed node -
childIndices
- indexes of changed children
nodeStructureChanged
public void nodeStructureChanged(TreeNode node)
- Parameters:
-
node
- changed node
getPathToRoot
public TreeNode[] getPathToRoot(TreeNode aNode)
- Parameters:
-
aNode
- the TreeNode to get the path for - Returns:
- an array of TreeNodes giving the path from the root
getPathToRoot
protected TreeNode[] getPathToRoot(TreeNode aNode, int depth)
- Parameters:
-
aNode
- the TreeNode to get the path for -
depth
- an int giving the number of steps already taken towards the root (on recursive calls), used to size the returned array - Returns:
- an array of TreeNodes giving the path from the root to the specified node
addTreeModelListener
public void addTreeModelListener(TreeModelListener l)
- Specified by:
-
addTreeModelListener
in interfaceTreeModel
- Parameters:
-
l
- the listener to add - See Also:
removeTreeModelListener
public void removeTreeModelListener(TreeModelListener l)
- Specified by:
-
removeTreeModelListener
in interfaceTreeModel
- Parameters:
-
l
- the listener to remove - See Also:
getTreeModelListeners
public TreeModelListener[] getTreeModelListeners()
- Returns:
- all of this model's
TreeModelListener
s or an empty array if no tree model listeners are currently registered - Since:
- 1.4
- See Also:
fireTreeNodesChanged
protected void fireTreeNodesChanged(Object source, Object[] path, int[] childIndices, Object[] children)
- Parameters:
-
source
- the source of theTreeModelEvent
; typicallythis
-
path
- the path to the parent of the nodes that changed; usenull
to identify the root has changed -
childIndices
- the indices of the changed elements -
children
- the changed elements
fireTreeNodesInserted
protected void fireTreeNodesInserted(Object source, Object[] path, int[] childIndices, Object[] children)
- Parameters:
-
source
- the source of theTreeModelEvent
; typicallythis
-
path
- the path to the parent the nodes were added to -
childIndices
- the indices of the new elements -
children
- the new elements
fireTreeNodesRemoved
protected void fireTreeNodesRemoved(Object source, Object[] path, int[] childIndices, Object[] children)
- Parameters:
-
source
- the source of theTreeModelEvent
; typicallythis
-
path
- the path to the parent the nodes were removed from -
childIndices
- the indices of the removed elements -
children
- the removed elements
fireTreeStructureChanged
protected void fireTreeStructureChanged(Object source, Object[] path, int[] childIndices, Object[] children)
- Parameters:
-
source
- the source of theTreeModelEvent
; typicallythis
-
path
- the path to the parent of the structure that has changed; usenull
to identify the root has changed -
childIndices
- the indices of the affected elements -
children
- the affected elements
getListeners
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
FooListener
s upon this model. FooListener
s are registered using the addFooListener
method. You can specify the listenerType
argument with a class literal, such as FooListener.class
. For example, you can query a DefaultTreeModel
m
for its tree model listeners with the following code:
TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));If no such listeners exist, this method returns an empty array.
- Type Parameters:
-
T
- the listener type - Parameters:
-
listenerType
- the type of listeners requested - Returns:
- an array of all objects registered as
FooListener
s on this component, or an empty array if no such listeners have been added - Throws:
-
ClassCastException
- iflistenerType
doesn't specify a class or interface that implementsjava.util.EventListener
- Since:
- 1.3
- See Also:
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/swing/tree/DefaultTreeModel.html