JavaTM 2 Platform
Standard Ed. 6

javax.swing.tree
類別 DefaultTreeModel

java.lang.Object
  繼承者 javax.swing.tree.DefaultTreeModel
所有已實作的介面:
Serializable, TreeModel

public class DefaultTreeModel
extends Object
implements Serializable, TreeModel

使用 TreeNodes 的簡單階層樹資料模型。有關使用 DefaultTreeModel 的更多資訊和範例,請參閱 The Java Tutorial 中的 How to Use Trees

警告:此類別的序列化物件將與以後的 Swing 版本不相容。當前的序列化支持適用於短期存儲或運行相同 Swing 版本的應用程序之間的 RMI。從 1.4 版本開始,已在 java.beans 套件中添加了支持所有 JavaBeansTM 長期存儲的功能。請參見 XMLEncoder


欄位摘要
protected  boolean asksAllowsChildren
          確定 isLeaf 方法如何判斷一個節點是否為葉節點。
protected  EventListenerList listenerList
          偵聽器。
protected  TreeNode root
          階層樹的根。
 
建構子摘要
DefaultTreeModel(TreeNode root)
          創建其中任何節點都可以有子節點的階層樹。
DefaultTreeModel(TreeNode root, boolean asksAllowsChildren)
          創建一棵階層樹,指定某個節點是否可以有子節點,或者是否僅某些節點可以有子節點。
 
方法摘要
 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)
          返回父節點的子節點陣列中索引 index 處的 parent 的子節點。
 int getChildCount(Object parent)
          返回 parent 的子節點數。
 int getIndexOfChild(Object parent, Object child)
          返回父節點中子節點的索引。
<T extends EventListener>
T[]
getListeners(Class<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)
          對它進行調用,以便在父節點的子節點中的 index 位置插入 newChild。
 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 的使用者物件,共時送更改的節點。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

root

protected TreeNode root
階層樹的根。


listenerList

protected EventListenerList listenerList
偵聽器。


asksAllowsChildren

protected boolean asksAllowsChildren
確定 isLeaf 方法如何判斷一個節點是否為葉節點。如果為 true,並且節點不允許有子節點,則該節點是葉節點。(如果它允許有子節點,則它不是葉節點,即使不存在任何子節點也是這樣。)例如,讓您區分檔案系統中的目錄 節點和檔案 節點。

如果此值為 false,則沒有子節點的任何節點都是葉節點,並且任何節點都可以獲取子節點。

另請參見:
TreeNode.getAllowsChildren(), TreeModel.isLeaf(java.lang.Object), setAsksAllowsChildren(boolean)
建構子詳細資訊

DefaultTreeModel

public DefaultTreeModel(TreeNode root)
創建其中任何節點都可以有子節點的階層樹。

參數:
root - 作為階層樹的根的 TreeNode 物件
另請參見:
DefaultTreeModel(TreeNode, boolean)

DefaultTreeModel

public DefaultTreeModel(TreeNode root,
                        boolean asksAllowsChildren)
創建一棵階層樹,指定某個節點是否可以有子節點,或者是否僅某些節點可以有子節點。

參數:
root - 作為階層樹的根的 TreeNode 物件
asksAllowsChildren - 一個布林值,如果任何節點都可以有子節點,則為 false,如果詢問每個節點看是否有子節點,則為 true
另請參見:
asksAllowsChildren
方法詳細資訊

setAsksAllowsChildren

public void setAsksAllowsChildren(boolean newValue)
通過向 TreeNodes 詢問 getAllowsChildren() 或 isLeaf(),設置是否測試無葉性。如果 newValue 為 true,則傳遞 getAllowsChildren(),否則傳遞 isLeaf()。


asksAllowsChildren

public boolean asksAllowsChildren()
告知如何確定葉節點。

返回:
如果只有不允許有子節點的節點是葉節點,則返回 true,如果沒有子節點的節點(即使允許)是葉節點,則返回 false
另請參見:
asksAllowsChildren

setRoot

public void setRoot(TreeNode root)
將根設置為 rootroot 為 null 暗示階層樹不顯示任何內容,並且是合法的。


getRoot

public Object getRoot()
返回階層樹的根。僅當階層樹沒有節點時,返回 null。

指定者:
介面 TreeModel 中的 getRoot
返回:
階層樹的根

getIndexOfChild

public int getIndexOfChild(Object parent,
                           Object child)
返回父節點中子節點的索引。如果父節點或子節點為 null,則返回 -1。

指定者:
介面 TreeModel 中的 getIndexOfChild
參數:
parent - 從此資料源獲取的階層樹中的節點
child - 使用者需要的節點
返回:
父節點中子節點的索引,如果父節點或子節點為 null,則返回 -1

getChild

public Object getChild(Object parent,
                       int index)
返回父節點的子節點陣列中索引 index 處的 parent 的子節點。parent 必須是以前從此資料源獲取的節點。如果 indexparent 的一個有效索引(即:index >= 0 && index < getChildCount(parent)),則不應返回 null。

指定者:
介面 TreeModel 中的 getChild
參數:
parent - 從此資料源獲取的階層樹中的節點
返回:
索引 index 位置的 parent 的子節點

getChildCount

public int getChildCount(Object parent)
返回 parent 的子節點數。如果該節點是葉節點,或者它沒有子節點,則返回 0。parent 必須是以前從此資料源獲取的節點。

指定者:
介面 TreeModel 中的 getChildCount
參數:
parent - 從此資料源獲取的階層樹中的節點
返回:
節點 parent 的子節點數

isLeaf

public boolean isLeaf(Object node)
返回指定的節點是否為葉節點。執行測試的方法取決於 askAllowsChildren 設置。

指定者:
介面 TreeModel 中的 isLeaf
參數:
node - 要檢查的節點
返回:
如果該節點是一個葉節點,則返回 true
另請參見:
asksAllowsChildren, TreeModel.isLeaf(java.lang.Object)

reload

public void reload()
如果已修改此模型依賴的 TreeNode,則調用此方法。該模型將通知其所有偵聽器該模型已更改。


valueForPathChanged

public void valueForPathChanged(TreePath path,
                                Object newValue)
此方法設置由路徑標識的 TreeNode 的使用者物件,共時送更改的節點。如果使用 TreeModel 中的自定義使用者物件,您將需要為該物件創建子類別,並將更改的節點的使用者物件設置為有意義的內容。

指定者:
介面 TreeModel 中的 valueForPathChanged
參數:
path - 使用者已更改的節點的路徑
newValue - TreeCellEditor 的新值

insertNodeInto

public void insertNodeInto(MutableTreeNode newChild,
                           MutableTreeNode parent,
                           int index)
對它進行調用,以便在父節點的子節點中的 index 位置插入 newChild。然後,通知 nodesWereInserted 創建適當的事件。這是添加子節點的首選方法,因為它將創建適當的事件。


removeNodeFromParent

public void removeNodeFromParent(MutableTreeNode node)
通知它從其父節點中移除節點。這將通知 nodesWereRemoved 創建適當事件。這是移除節點的首選方法,因為它可以為您處理事件的創建。


nodeChanged

public void nodeChanged(TreeNode node)
更改節點在階層樹中的表示方式之後,調用此方法。


reload

public void reload(TreeNode node)
如果已修改此模型依賴的 TreeNode,則調用此方法。該模型將通知其所有偵聽器給定節點下面的模型已更改。

參數:
node - 其下面的模型已更改的節點

nodesWereInserted

public void nodesWereInserted(TreeNode node,
                              int[] childIndices)
將某些 TreeNodes 插入節點之後,調用此方法。子索引應是新元素的索引,並且必須按升序排序。


nodesWereRemoved

public void nodesWereRemoved(TreeNode node,
                             int[] childIndices,
                             Object[] removedChildren)
從節點移除一些 TreeNodes 之後,調用此方法。childIndices 應是移除元素的索引,並且必須按升序排序。removedChildren 應是移除的子物件的陣列。


nodesChanged

public void nodesChanged(TreeNode node,
                         int[] childIndices)
更改由 childIndicies 標識的子物件在階層樹中的表示方式之後,調用此方法。


nodeStructureChanged

public void nodeStructureChanged(TreeNode node)
如果完全更改了節點的子節點、子節點的子節點、依此類別推,則調用此方法。調用此方法將發佈 treeStructureChanged 事件。


getPathToRoot

public TreeNode[] getPathToRoot(TreeNode aNode)
向上建構節點的父節點一直到根節點(包括根節點),其中原始節點是返回陣列中的最後一個元素。返回的陣列長度給出了階層樹中節點的深度。

參數:
aNode - 獲取其路徑的 TreeNode

getPathToRoot

protected TreeNode[] getPathToRoot(TreeNode aNode,
                                   int depth)
向上建構節點的父節點一直到根節點(包括根節點),其中原始節點是返回陣列中的最後一個元素。返回的陣列長度給出了階層樹中節點的深度。

參數:
aNode - 要獲取其路徑的 TreeNode
depth - 提供對根(通過遞歸調用)執行的步驟數的 int,用於確定返回的陣列的大小
返回:
提供從根到指定節點的路徑的 TreeNodes 陣列。

addTreeModelListener

public void addTreeModelListener(TreeModelListener l)
為階層樹更改後發佈的 TreeModelEvent 添加偵聽器。

指定者:
介面 TreeModel 中的 addTreeModelListener
參數:
l - 要添加的偵聽器
另請參見:
removeTreeModelListener(javax.swing.event.TreeModelListener)

removeTreeModelListener

public void removeTreeModelListener(TreeModelListener l)
移除以前使用 addTreeModelListener() 添加的偵聽器。

指定者:
介面 TreeModel 中的 removeTreeModelListener
參數:
l - 要移除的偵聽器
另請參見:
addTreeModelListener(javax.swing.event.TreeModelListener)

getTreeModelListeners

public TreeModelListener[] getTreeModelListeners()
返回在此模型上註冊的所有階層樹模型偵聽器組成的陣列。

返回:
此模型的所有 TreeModelListener,如果當前沒有註冊任何階層樹模型偵聽器,則返回一個空陣列
從以下版本開始:
1.4
另請參見:
addTreeModelListener(javax.swing.event.TreeModelListener), removeTreeModelListener(javax.swing.event.TreeModelListener)

fireTreeNodesChanged

protected void fireTreeNodesChanged(Object source,
                                    Object[] path,
                                    int[] childIndices,
                                    Object[] children)
通知所有需要此事件型別的通知的已註冊偵聽器。使用傳入此觸發方法的參數延後創建事件實例。

參數:
source - 更改的節點
path - 到根節點的路徑
childIndices - 更改的元素的索引
children - 更改的元素
另請參見:
EventListenerList

fireTreeNodesInserted

protected void fireTreeNodesInserted(Object source,
                                     Object[] path,
                                     int[] childIndices,
                                     Object[] children)
通知所有需要此事件型別的通知的已註冊偵聽器。使用傳入此觸發方法的參數延後創建事件實例。

參數:
source - 插入新元素的節點
path - 到根節點的路徑
childIndices - 新元素的索引
children - 新元素
另請參見:
EventListenerList

fireTreeNodesRemoved

protected void fireTreeNodesRemoved(Object source,
                                    Object[] path,
                                    int[] childIndices,
                                    Object[] children)
通知所有需要此事件型別的通知的已註冊偵聽器。使用傳入此觸發方法的參數延後創建事件實例。

參數:
source - 移除元素的節點
path - 到根節點的路徑
childIndices - 移除元素的索引
children - 移除的元素
另請參見:
EventListenerList

fireTreeStructureChanged

protected void fireTreeStructureChanged(Object source,
                                        Object[] path,
                                        int[] childIndices,
                                        Object[] children)
通知所有需要此事件型別的通知的已註冊偵聽器。使用傳入此觸發方法的參數延後創建事件實例。

參數:
source - 從該節點開始階層樹模型已更改的節點
path - 到根節點的路徑
childIndices - 受影響的元素的索引
children - 受影響的元素
另請參見:
EventListenerList

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
返回當前已在此模型上註冊為 FooListener 的所有物件組成的陣列。FooListener 是用 addFooListener 方法註冊的。

可以使用 class 文字值來指定 listenerType 參數,如 FooListener.class。例如,可以使用下面的程式碼查詢 DefaultTreeModel m 的階層樹模型偵聽器:

TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));
如果不存在這樣的偵聽器,則此方法將返回一個空陣列。

參數:
listenerType - 所請求偵聽器的型別;該參數應該指定一個從 java.util.EventListener 繼承的介面
返回:
在此容器上註冊為 FooListener 的所有物件的陣列,如果沒有添加這樣的偵聽器,則返回一個空陣列
拋出:
ClassCastException - 如果 listenerType 沒有指定實作 java.util.EventListener 的類別或介面
從以下版本開始:
1.3
另請參見:
getTreeModelListeners()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only