JavaTM 2 Platform
Standard Ed. 6

javax.swing.event
類別 TreeModelEvent

java.lang.Object
  繼承者 java.util.EventObject
      繼承者 javax.swing.event.TreeModelEvent
所有已實作的介面:
Serializable

public class TreeModelEvent
extends EventObject

封裝描述階層樹模型更改的資訊,並用於通知偵聽更改的階層樹模型偵聽器。有關更多的資訊和範例,請參閱 The Java Tutorial 中的 How to Write a Tree Model Listener 一節。

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


欄位摘要
protected  int[] childIndices
          標識子節點所在位置的索引。
protected  Object[] children
          已被移除的子節點。
protected  TreePath path
          到達已更改節點的父節點的路徑。
 
從類別 java.util.EventObject 繼承的欄位
source
 
建構子摘要
TreeModelEvent(Object source, Object[] path)
          用來在節點結構以某種方法發生更改時創建一個事件,將到達已修改子階層樹的根的路徑標識為一個 Object 陣列。
TreeModelEvent(Object source, Object[] path, int[] childIndices, Object[] children)
          用來在節點已更改、插入或移除時創建一個事件,將到達已修改項的父級的路徑標識為一個 Object 陣列。
TreeModelEvent(Object source, TreePath path)
          用來在節點結構以某種方法發生更改時創建一個事件,將到達已修改子階層樹的根的路徑標識為一個 TreePath 物件。
TreeModelEvent(Object source, TreePath path, int[] childIndices, Object[] children)
          用來在節點已更改、插入或移除時創建一個事件,將到達已修改項的父級的路徑標識為一個 TreePath 物件。
 
方法摘要
 int[] getChildIndices()
          返回子索引的值。
 Object[] getChildren()
          返回位於 getChildIndices 指定位置處的、作為 getPath 所標識節點的子節點的物件。
 Object[] getPath()
          從此事件包裹的 TreePath 實例中獲得物件陣列的便捷方法。
 TreePath getTreePath()
          對於除 treeStructureChanged 以外的所有事件,返回已更改節點的父節點。
 String toString()
          返回顯示和標識此物件屬性的字元串。
 
從類別 java.util.EventObject 繼承的方法
getSource
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

path

protected TreePath path
到達已更改節點的父節點的路徑。


childIndices

protected int[] childIndices
標識子節點所在位置的索引。


children

protected Object[] children
已被移除的子節點。

建構子詳細資訊

TreeModelEvent

public TreeModelEvent(Object source,
                      Object[] path,
                      int[] childIndices,
                      Object[] children)
用來在節點已更改、插入或移除時創建一個事件,將到達已修改項的父級的路徑標識為一個 Object 陣列。所有修改的物件都是同級的,它們是指定父物件的直接後代(不是孫級)。發生插入、刪除或更改操作的位置由一個 int 陣列指定。該陣列中的索引必須是有序的,從最低到最高。

對於更改操作,模型中的索引完全對應於當前顯示在 UI 中的項的索引。因此,如果索引沒有按其正確的順序排列實際上也沒有多大關係。但在多次執行插入或刪除操作以後,UI 中當前存在的項不再對應於模型中的項。因此,為插入和刪除操作正確地指定索引很關鍵。

對於插入操作,在執行插入操作之後,索引表示階層樹的最終 狀態。因為必須按順序指定索引,所以最自然的處理方法是從最低索引處開始執行插入操作,向最高索引處移動。在此過程中累計指定插入位置的 Integer 物件的 Vector,然後將該 Vector 轉換成一個 int 陣列,以創建事件。當位置索引等於零時,在列表的開始處插入節點。當位置索引等於列表的大小時,在列表的結尾處“插入”(追加)節點。

對於刪除操作,在執行刪除操作之前,索引表示階層樹的最初 狀態。因為必須按順序指定索引,所以最自然的處理方法是使用一個刪除計數器 (delete-counter)。先將計數器初始化為零,然後從最低索引到最高索引對列表進行初始化。每執行一次刪除操作,就將刪除計數器的當前值添加到執行刪除的索引位置,然後使用 addElement() 將所得的結果追加到刪除位置的 Vector 中。然後將刪除計數器加 1。所以存儲在 Vector 中的索引位置可以反映所有以前的刪除操作的效果,因此它們表示初始階層樹中每個物件的位置。(還可以從最高索引開始,反向運行到最低索引,並在此過程中使用 insertElementAt(Integer, 0) 累計刪除位置的 Vector。)不過,先要產生初始位置的 Vector,然後將 Integer 物件的 Vector 轉換成一個 int 陣列,以創建事件。

註:


TreeModelEvent

public TreeModelEvent(Object source,
                      TreePath path,
                      int[] childIndices,
                      Object[] children)
用來在節點已更改、插入或移除時創建一個事件,將到達已修改項的父級的路徑標識為一個 TreePath 物件。有關如何指定索引和物件的更多資訊,請參見 TreeModelEvent(Object,Object[],int[],Object[])

參數:
source - 對產生該事件負責的 Object(事件物件的創建者通常傳遞 this 作為其值)
path - 標識到達已修改項父級的路徑的 TreePath 物件
childIndices - 指定已修改項的索引值的 int 陣列
children - 套件含已插入、移除或更改物件的 Object 陣列
另請參見:
TreeModelEvent(Object,Object[],int[],Object[])

TreeModelEvent

public TreeModelEvent(Object source,
                      Object[] path)
用來在節點結構以某種方法發生更改時創建一個事件,將到達已修改子階層樹的根的路徑標識為一個 Object 陣列。例如,結構更改事件可能涉及節點交換位置,或者它可以在源於該節點的子階層樹中封裝多個插入和刪除操作,在該子階層樹中,更改可以發生在子階層樹的不同級別上。
註:
JTree 折疊指定節點下的所有節點,因此只有該節點的直接子節點可見。

參數:
source - 對產生該事件負責的 Object(事件物件的創建者通常傳遞 this 作為其值)
path - 指定到達已修改子階層樹的根的路徑的 Object 陣列,該陣列的第一個元素是存儲在根節點上的物件,最後一個元素是存儲在已更改節點上的物件
另請參見:
TreePath

TreeModelEvent

public TreeModelEvent(Object source,
                      TreePath path)
用來在節點結構以某種方法發生更改時創建一個事件,將到達已修改子階層樹的根的路徑標識為一個 TreePath 物件。有關此事件規範的更多資訊,請參見 TreeModelEvent(Object,Object[])

參數:
source - 對產生該事件負責的 Object(事件物件的創建者通常傳遞 this 作為其值)
path - 標識到達更改的路徑的 TreePath 物件。在 DefaultTreeModel 中,此物件包含一個使用者資料物件陣列,但 TreePath 的子類別可以使用完全不同的一些機制,例如,一個節點 ID 編號
另請參見:
TreeModelEvent(Object,Object[])
方法詳細資訊

getTreePath

public TreePath getTreePath()
對於除 treeStructureChanged 以外的所有事件,返回已更改節點的父節點。對於 treeStructureChanged 事件,返回已更改結構的祖先。可使用此方法和 getChildIndices 來獲得受影響節點的列表。

惟一的例外是一個將標識根的 treeNodesChanged 事件,在這種情況下,此方法將返回此根,而 getChildIndices 將返回 null。

返回:
用於標識已更改節點的 TreePath。
另請參見:
TreePath.getLastPathComponent()

getPath

public Object[] getPath()
從此事件包裹的 TreePath 實例中獲得物件陣列的便捷方法。

返回:
Object 陣列,其中第一個 Object 是存儲在根節點上的物件,最後一個物件是存儲在由該路徑標識的節點上的物件

getChildren

public Object[] getChildren()
返回位於 getChildIndices 指定位置處的、作為 getPath 所標識節點的子節點的物件。如果這是一個移除事件,則返回的物件不再是父節點的子節點。

返回:
包含由事件指定的子節點的 Object 陣列
另請參見:
getPath(), getChildIndices()

getChildIndices

public int[] getChildIndices()
返回子索引的值。如果這是一個移除事件,則索引指向已移除項所在的初始列表中的位置。如果這是一個插入事件,則索引指向添加項所在的初始列表中的位置。對於節點更改,索引指向已修改節點的位置。

返回:
包含該事件指定的子索引位置的 int 陣列

toString

public String toString()
返回顯示和標識此物件屬性的字元串。

覆寫:
類別 EventObject 中的 toString
返回:
此物件的字元串表示形式

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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