JavaTM 2
Platform
Std. Ed. v1.4.0

javax.swing.tree
クラス DefaultMutableTreeNode

java.lang.Object
  |
  +--javax.swing.tree.DefaultMutableTreeNode
すべての実装インタフェース:
Cloneable, MutableTreeNode, Serializable, TreeNode
直系の既知のサブクラス:
JTree.DynamicUtilTreeNode

public class DefaultMutableTreeNode
extends Object
implements Cloneable, MutableTreeNode, Serializable

DefaultMutableTreeNode は、ツリーデータ構造の汎用ノードです。デフォルトの可変ツリーノードの使用例は、「The Java Tutorial」「How to Use Trees」を参照してください。

ツリーノードは最大 1 つの親と、ゼロ個以上の子を持ちます。DefaultMutableTreeNode は、ノードの親と子の検査と変更を行うためのオペレーションと、そのノードによって構成されるツリーを検査するオペレーションを提供します。ノードのツリーは、そのノードを起点とする親と子へのすべての可能なリンクをたどって到達できる、すべてのノードから構成されます。親を持たないノードはそのツリーのルートで、子を持たないノードは葉です。ツリーは多数のサブツリーを持つことができ、各ノードはそのサブツリーのルートになります。

このクラスは、ツリーまたはサブツリーをさまざまな順序で効率的にたどる方法や、2 つのノード間のパスをたどるための方法を列挙します。DefaultMutableTreeNode には、ユーザオブジェクトへの参照、つまりユーザが独自に定義するオブジェクトへの参照も格納できます。DefaultMutableTreeNodetoString() を指定してその文字列表現を要求すると、そのユーザオブジェクトの文字列表現を返します。

このクラスはスレッドに対して安全ではありません。複数のスレッドで DefaultMutableTreeNode (つまり、TreeNode のツリー) を使う場合、ユーザ自身が同期を行う必要があります。慣例では、ツリーのルートノードで同期させます。

DefaultMutableTreeNode は MutableTreeNode インタフェースを実装し、MutableTreeNode のあらゆる実装にメソッドを追加できますが、DefaultMutableTreeNode のすべてのメソッドが MutableTreeNode のすべての実装に適用できるとはかぎりません。提供される列挙の一部では特に、そうしたメソッドの一部を使うと、DefaultMutableTreeNode は DefaultMutableNode のインスタンスだけを含む場合があります。TreeNode/MutableTreeNode メソッドはすべて、どの実装が追加されても定義されたように動作します。

警告: このクラスの直列化されたオブジェクトは、今後の Swing のリリースとは互換性を持ちません。現在の直列化サポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。1.4 では、すべての JavaBeansTM の長期運用サポートが、 java.beans パッケージに追加されました。XMLEncoder を参照してください。

関連項目:
MutableTreeNode

フィールドの概要
protected  boolean allowsChildren
          ノードが子を持つことができる場合は true です。
protected  Vector children
          子たちの配列です。
static Enumeration EMPTY_ENUMERATION
          常に空の列挙です。
protected  MutableTreeNode parent
          このノードの親です。
protected  Object userObject
          ユーザオブジェクトのオプションです。
 
コンストラクタの概要
DefaultMutableTreeNode()
          親も子も持たないツリーノードを作成します。
DefaultMutableTreeNode(Object userObject)
          親も子も持たないツリーノードを作成し、指定されたユーザオブジェクトで初期化します。
DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
          親も子もないツリーノードを作成します。
 
メソッドの概要
 void add(MutableTreeNode newChild)
          newChild をその親から削除し、このノードの子配列の末尾に追加して、このノードの子にします。
 Enumeration breadthFirstEnumeration()
          このノードをルートにするサブツリーを幅優先走査する列挙を生成して返します。
 Enumeration children()
          このノードの子の順方向列挙を作成して返します。
 Object clone()
          オーバーライドされて、複製を public にします。
 Enumeration depthFirstEnumeration()
          このノードをルートにするサブツリーを、深さ優先走査する列挙を生成して返します。
 boolean getAllowsChildren()
          このノードが子を持つことを許可されている場合に true を返します。
 TreeNode getChildAfter(TreeNode aChild)
          このノードの子配列内で aChild の直後にくる子を返します。
 TreeNode getChildAt(int index)
          このノードの子配列にある、指定されたインデックスの子を返します。
 TreeNode getChildBefore(TreeNode aChild)
          このノードの子配列内で aChild の直前にくる子を返します。
 int getChildCount()
          このノードの子の数を返します。
 int getDepth()
          このノードをルートにするツリーの深さ、つまりこのノードから葉までの最長の距離を返します。
 TreeNode getFirstChild()
          このノードの最初の子を返します。
 DefaultMutableTreeNode getFirstLeaf()
          このノードの下位ノードである最初の葉、つまり、このノード、またはその最初の子の最初の葉のどちらかを見つけて返します。
 int getIndex(TreeNode aChild)
          このノードの子配列にある、指定された子のインデックスを返します。
 TreeNode getLastChild()
          このノードの最後の子を返します。
 DefaultMutableTreeNode getLastLeaf()
          このノードの下位ノードである最後の葉、つまり、このノード、またはその最後の子の最後の葉のどちらかを見つけて返します。
 int getLeafCount()
          このノードの下位ノードである葉の合計数を返します。
 int getLevel()
          このノードより上の部分のレベル数、つまりルートからこのノードまでの距離を返します。
 DefaultMutableTreeNode getNextLeaf()
          このノードの後ろの葉を返します。
 DefaultMutableTreeNode getNextNode()
          このノードのツリーの前順走査でこのノードの次にあるノードを返します。
 DefaultMutableTreeNode getNextSibling()
          親の子配列にあるこのノードの次の兄弟ウィジェットを返します。
 TreeNode getParent()
          このノードの親を返します。
 TreeNode[] getPath()
          ルートからこのノードに至るまでのパスを返します。
protected  TreeNode[] getPathToRoot(TreeNode aNode, int depth)
          ルートノードまでを含むノードの親を構築します。
 DefaultMutableTreeNode getPreviousLeaf()
          このノードの前の葉を返します。
 DefaultMutableTreeNode getPreviousNode()
          このノードのツリーの前順走査でこのノードの前にあるノードを返します。
 DefaultMutableTreeNode getPreviousSibling()
          親の子配列にあるこのノードの直前の兄弟ウィジェットを返します。
 TreeNode getRoot()
          このノードを格納するツリーのルートを返します。
 TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
          このノードと aNode にもっとも近い共通の上位ノードを返します。
 int getSiblingCount()
          このノードの兄弟ウィジェット数を返します。
 Object getUserObject()
          このノードのユーザオブジェクトを返します。
 Object[] getUserObjectPath()
          ルートからこのノードに至るユーザオブジェクトパスを返します。
 void insert(MutableTreeNode newChild, int childIndex)
          newChild をその親があればその親から削除し、子の親をこのノードに設定してから、子をこのノードの子配列のインデックス childIndex に追加します。
 boolean isLeaf()
          このノードに子がない場合は true を返します。
 boolean isNodeAncestor(TreeNode anotherNode)
          anotherNode がこのノードの上位ノードである場合、つまり、このノード、このノードの親、またはこのノードの親の上位ノードである場合は、true を返します。
 boolean isNodeChild(TreeNode aNode)
          aNode がこのノードの子である場合は true を返します。
 boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
          anotherNode がこのノードの下位ノードである場合、つまり、このノード、このノードの複数の子の中の 1 つ、またはその複数の子の中の 1 つの下位ノードである場合は、true を返します。
 boolean isNodeRelated(DefaultMutableTreeNode aNode)
          aNode がこのノードと同じツリーにある場合に true を返します。
 boolean isNodeSibling(TreeNode anotherNode)
          anotherNode がこのノードと同じ親を持つ兄弟ウィジェットである場合は true を返します。
 boolean isRoot()
          このノードがツリーのルートの場合は true を返します。
 Enumeration pathFromAncestorEnumeration(TreeNode ancestor)
          ancestor からこのノードまでのパスをたどる列挙を生成して返します。
 Enumeration postorderEnumeration()
          このノードをルートにするサブツリーを後順走査する列挙を生成して返します。
 Enumeration preorderEnumeration()
          このノードをルートにするサブツリーを前順走査する列挙を生成して返します。
 void remove(int childIndex)
          このノードの複数の子から、指定されたインデックスの子を削除し、そのノードの親を null に設定します。
 void remove(MutableTreeNode aChild)
          aChild をこのノードの子配列から削除し、それに null の親を与えます。
 void removeAllChildren()
          このノードの子たちをすべて削除し、それらの親を null に設定します。
 void removeFromParent()
          このノードをルートにするサブツリーをツリーから削除し、このノードに null の親を与えます。
 void setAllowsChildren(boolean allows)
          このノードが子を持つことを許可されるかどうかを設定します。
 void setParent(MutableTreeNode newParent)
          このノードの親を newParent に設定しますが、親の子配列は変更しません。
 void setUserObject(Object userObject)
          このノードのユーザオブジェクトを userObject に設定します。
 String toString()
          toString() をこのノードのユーザオブジェクトに送った結果を返します。
 
クラス java.lang.Object から継承したメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

EMPTY_ENUMERATION

public static final Enumeration EMPTY_ENUMERATION
常に空の列挙です。これは、葉ノードの子の列挙が要求されたときに使用されます。


parent

protected MutableTreeNode parent
このノードの親です。このノードに親がない場合は null です。


children

protected Vector children
子たちの配列です。このノードに子がない場合は null です。


userObject

protected transient Object userObject
ユーザオブジェクトのオプションです。


allowsChildren

protected boolean allowsChildren
ノードが子を持つことができる場合は true です。

コンストラクタの詳細

DefaultMutableTreeNode

public DefaultMutableTreeNode()
親も子も持たないツリーノードを作成します。このツリーノードは子を持つことができます。


DefaultMutableTreeNode

public DefaultMutableTreeNode(Object userObject)
親も子も持たないツリーノードを作成し、指定されたユーザオブジェクトで初期化します。このツリーノードは子を持つことができます。

パラメータ:
userObject - ユーザが提供する、ノードのデータを構成する Object

DefaultMutableTreeNode

public DefaultMutableTreeNode(Object userObject,
                              boolean allowsChildren)
親も子もないツリーノードを作成します。これは、指定されたユーザオブジェクトで初期化され、指定された場合にかぎり子を持つことができます。

パラメータ:
userObject - ユーザが提供する、ノードのデータを構成する Object
allowsChildren - ノードが子ノードを持つことを許可される場合は true、そうでない場合は常に葉ノード
メソッドの詳細

insert

public void insert(MutableTreeNode newChild,
                   int childIndex)
newChild をその親があればその親から削除し、子の親をこのノードに設定してから、子をこのノードの子配列のインデックス childIndex に追加します。newChild は null、およびこのノードの上位ノードにすることはできません。

定義:
インタフェース MutableTreeNode 内の insert
パラメータ:
newChild - このノードより下位の部分に挿入する MutableTreeNode
childIndex - このノードの挿入先である、このノードの子配列のインデックス
例外:
ArrayIndexOutOfBoundsException - childIndex が範囲外にある場合
IllegalArgumentException - newChild が null の場合、またはこのノードの上位ノードである場合
IllegalStateException - このノードが子を許可しない場合
関連項目:
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

remove

public void remove(int childIndex)
このノードの複数の子から、指定されたインデックスの子を削除し、そのノードの親を null に設定します。削除する子ノードは、MutableTreeNode でなければなりません。

定義:
インタフェース MutableTreeNode 内の remove
パラメータ:
childIndex - このノードの子配列で削除する対象の子のインデックス
例外:
ArrayIndexOutOfBoundsException - childIndex が範囲外にある場合

setParent

public void setParent(MutableTreeNode newParent)
このノードの親を newParent に設定しますが、親の子配列は変更しません。このメソッドは子の親を再び割り当てるために、insert()remove() から呼び出されます。ほかのメソッドからメッセージとして送られることはありません。

定義:
インタフェース MutableTreeNode 内の setParent
パラメータ:
newParent - このノードの新しい親

getParent

public TreeNode getParent()
このノードの親を返します。このノードに親がない場合は null を返します。

定義:
インタフェース TreeNode 内の getParent
戻り値:
このノードの親 TreeNode。このノードに親がない場合は null

getChildAt

public TreeNode getChildAt(int index)
このノードの子配列にある、指定されたインデックスの子を返します。

定義:
インタフェース TreeNode 内の getChildAt
パラメータ:
index - このノードの子配列のインデックス
戻り値:
このノードの子配列にある、指定されたインデックスの TreeNode
例外:
ArrayIndexOutOfBoundsException - index が範囲外にある場合

getChildCount

public int getChildCount()
このノードの子の数を返します。

定義:
インタフェース TreeNode 内の getChildCount
戻り値:
このノードの子の数を示す int 値

getIndex

public int getIndex(TreeNode aChild)
このノードの子配列にある、指定された子のインデックスを返します。指定されたノードがこのノードの子でない場合は、-1 を返します。このメソッドは O(n) の線形探索を実行します。n は子の数です。

定義:
インタフェース TreeNode 内の getIndex
パラメータ:
aChild - このノードの複数の子の中から検索する TreeNode
戻り値:
このノードの子配列にある、ノードのインデックスを示す int 値。指定されたノードがこのノードの子でない場合は -1
例外:
IllegalArgumentException - aChild が null の場合

children

public Enumeration children()
このノードの子の順方向列挙を作成して返します。このノードの子配列を変更すると、変更前に作成された子の列挙はどれも無効になります。

定義:
インタフェース TreeNode 内の children
戻り値:
このノードの子の Enumeration

setAllowsChildren

public void setAllowsChildren(boolean allows)
このノードが子を持つことを許可されるかどうかを設定します。allows が false の場合は、このノードの子はすべて削除されます。

注: デフォルトでは、ノードは子を許可します。

パラメータ:
allows - このノードが子を持つことを許可される場合は true

getAllowsChildren

public boolean getAllowsChildren()
このノードが子を持つことを許可されている場合に true を返します。

定義:
インタフェース TreeNode 内の getAllowsChildren
戻り値:
このノードが子を許可している場合は true、そうでない場合は false

setUserObject

public void setUserObject(Object userObject)
このノードのユーザオブジェクトを userObject に設定します。

定義:
インタフェース MutableTreeNode 内の setUserObject
パラメータ:
userObject - このノードのユーザ指定のデータを構成する Object
関連項目:
getUserObject(), toString()

getUserObject

public Object getUserObject()
このノードのユーザオブジェクトを返します。

戻り値:
ユーザによってこのノードに格納される Object
関連項目:
setUserObject(java.lang.Object), toString()

removeFromParent

public void removeFromParent()
このノードをルートにするサブツリーをツリーから削除し、このノードに null の親を与えます。このノードがそのツリーのルートである場合は、処理を行いません。

定義:
インタフェース MutableTreeNode 内の removeFromParent

remove

public void remove(MutableTreeNode aChild)
aChild をこのノードの子配列から削除し、それに null の親を与えます。

定義:
インタフェース MutableTreeNode 内の remove
パラメータ:
aChild - 削除するこのノードの子
例外:
IllegalArgumentException - aChild が null の場合、またはこのノードの子でない場合

removeAllChildren

public void removeAllChildren()
このノードの子たちをすべて削除し、それらの親を null に設定します。このノードが子を持たない場合、このメソッドは処理を行いません。


add

public void add(MutableTreeNode newChild)
newChild をその親から削除し、このノードの子配列の末尾に追加して、このノードの子にします。

パラメータ:
newChild - このノードの子として追加するノード
例外:
IllegalArgumentException - newChild が null の場合
IllegalStateException - このノードが子を許可しない場合
関連項目:
insert(javax.swing.tree.MutableTreeNode, int)

isNodeAncestor

public boolean isNodeAncestor(TreeNode anotherNode)
anotherNode がこのノードの上位ノードである場合、つまり、このノード、このノードの親、またはこのノードの親の上位ノードである場合は、true を返します。ノードはそれ自身の上位ノードと見なされます。anotherNode が null の場合は、このメソッドは false を返します。このオペレーションは最低でも O(h) です。h はルートからこのノードまでの距離です。

パラメータ:
anotherNode - このノードの上位ノードであるかどうかを調べるノード
戻り値:
このノードが anotherNode の下位ノードである場合は true
関連項目:
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode), getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)

isNodeDescendant

public boolean isNodeDescendant(DefaultMutableTreeNode anotherNode)
anotherNode がこのノードの下位ノードである場合、つまり、このノード、このノードの複数の子の中の 1 つ、またはその複数の子の中の 1 つの下位ノードである場合は、true を返します。ノードはそれ自身の下位ノードと見なされます。anotherNode が null の場合は、このメソッドは false を返します。このオペレーションは最低でも O(h) です。h はルートから anotherNode までの距離です。

パラメータ:
anotherNode - このノードの下位ノードであるかどうかを調べるノード
戻り値:
このノードが anotherNode の上位ノードである場合は true
関連項目:
isNodeAncestor(javax.swing.tree.TreeNode), getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode)

getSharedAncestor

public TreeNode getSharedAncestor(DefaultMutableTreeNode aNode)
このノードと aNode にもっとも近い共通の上位ノードを返します。そのような上位ノードがない場合、つまりこのノードと aNode が異なるツリーにある場合や、aNode が null の場合は、null を返します。ノードはそれ自身の上位ノードと見なされます。

パラメータ:
aNode - 共通の上位ノードを見つけるノード
戻り値:
このノードと aNode にもっとも近い共通の上位ノード。ない場合は null
関連項目:
isNodeAncestor(javax.swing.tree.TreeNode), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeRelated

public boolean isNodeRelated(DefaultMutableTreeNode aNode)
aNode がこのノードと同じツリーにある場合に true を返します。aNode が null の場合は false を返します。

戻り値:
aNode がこのノードと同じツリーにある場合は true、aNode が null の場合は false
関連項目:
getSharedAncestor(javax.swing.tree.DefaultMutableTreeNode), getRoot()

getDepth

public int getDepth()
このノードをルートにするツリーの深さ、つまりこのノードから葉までの最長の距離を返します。このノードが子を持たない場合は 0 を返します。このノードをルートにするツリー全体を効率的にたどる必要があるので、このオペレーションは getLevel() よりもかなり負荷が大きくなります。

戻り値:
このノードをルートとするツリーの深さ
関連項目:
getLevel()

getLevel

public int getLevel()
このノードより上の部分のレベル数、つまりルートからこのノードまでの距離を返します。このノードがルートの場合は 0 を返します。

戻り値:
このノードより上の部分のレベル数
関連項目:
getDepth()

getPath

public TreeNode[] getPath()
ルートからこのノードに至るまでのパスを返します。パスの最後の要素はこのノードです。

戻り値:
パスを指定する TreeNode オブジェクトの配列。パスの最初の要素はルートで、最後の要素はこのノード

getPathToRoot

protected TreeNode[] getPathToRoot(TreeNode aNode,
                                   int depth)
ルートノードまでを含むノードの親を構築します。ただし、元のノードは返される配列内の最後の要素です。返される配列の長さは、ツリー内のノードの深さを指定します。

パラメータ:
aNode - パスを取得する TreeNode
depth - 返される配列のサイズ指定に使う、(再帰呼び出しで) すでに取得済みのルートまでのステップ数を示す int 値
戻り値:
ルートから指定されたノードまでのパスを示す TreeNode の配列

getUserObjectPath

public Object[] getUserObjectPath()
ルートからこのノードに至るユーザオブジェクトパスを返します。パスのいくつかの TreeNode が null ユーザオブジェクトを持つ場合、返されるパスは null を含みます。


getRoot

public TreeNode getRoot()
このノードを格納するツリーのルートを返します。ルートは null の親を持つ上位ノードです。

戻り値:
このノードを格納するツリーのルート
関連項目:
isNodeAncestor(javax.swing.tree.TreeNode)

isRoot

public boolean isRoot()
このノードがツリーのルートの場合は true を返します。ルートは、ツリー内で null の親を持つ唯一のノードです。すべてのツリーはルートを 1 つだけ持ちます。

戻り値:
このノードがそのツリーのルートの場合は true

getNextNode

public DefaultMutableTreeNode getNextNode()
このノードのツリーの前順走査でこのノードの次にあるノードを返します。このノードが走査の最後のノードである場合は null を返します。これはツリー全体をたどる方法としては効率的ではないので、代わりに列挙を使います。

戻り値:
前順走査でこのノードの次にあるノード。このノードが最後のノードの場合は null
関連項目:
preorderEnumeration()

getPreviousNode

public DefaultMutableTreeNode getPreviousNode()
このノードのツリーの前順走査でこのノードの前にあるノードを返します。このノードが走査の最初のノード (ツリーのルート) である場合は null を返します。これはツリー全体をたどる方法としては効率的ではないので、代わりに列挙を使います。

戻り値:
前順走査でこのノードの前にあるノード。このノードが最初のノードの場合は null
関連項目:
preorderEnumeration()

preorderEnumeration

public Enumeration preorderEnumeration()
このノードをルートにするサブツリーを前順走査する列挙を生成して返します。列挙の nextElement() メソッドによって返される最初のノードは、このノードです。

ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。

戻り値:
ツリーを前順走査するための列挙
関連項目:
postorderEnumeration()

postorderEnumeration

public Enumeration postorderEnumeration()
このノードをルートにするサブツリーを後順走査する列挙を生成して返します。列挙の nextElement() メソッドによって返される最初のノードは、左端の葉です。これは、深さ優先走査と同じです。

ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。

戻り値:
ツリーを後順走査するための列挙
関連項目:
depthFirstEnumeration(), preorderEnumeration()

breadthFirstEnumeration

public Enumeration breadthFirstEnumeration()
このノードをルートにするサブツリーを幅優先走査する列挙を生成して返します。列挙の nextElement() メソッドによって返される最初のノードは、このノードです。

ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。

戻り値:
ツリーを幅優先走査するための列挙
関連項目:
depthFirstEnumeration()

depthFirstEnumeration

public Enumeration depthFirstEnumeration()
このノードをルートにするサブツリーを、深さ優先走査する列挙を生成して返します。列挙の nextElement() メソッドによって返される最初のノードは、左端の葉です。これは、ポストオーダ探索と同じです。

ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。

戻り値:
ツリーを深さ優先走査するための列挙
関連項目:
breadthFirstEnumeration(), postorderEnumeration()

pathFromAncestorEnumeration

public Enumeration pathFromAncestorEnumeration(TreeNode ancestor)
ancestor からこのノードまでのパスをたどる列挙を生成して返します。列挙の nextElement() メソッドは、最初に ancestor、次にこのノードの上位ノードである ancestor の子というように順次返していき、最後にこのノードを返します。列挙の生成は O(m) です。m はこのノードと ancestor の間 (このノードと ancestor を含む) のノード数です。各 nextElement() メッセージは O(1) です。

ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。

戻り値:
このノードの上位ノードからこれまでのパスをたどるための列挙
例外:
IllegalArgumentException - ancestor がこのノードの上位ノードでない場合
関連項目:
isNodeAncestor(javax.swing.tree.TreeNode), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

isNodeChild

public boolean isNodeChild(TreeNode aNode)
aNode がこのノードの子である場合は true を返します。aNode が null の場合、このメソッドは false を返します。

戻り値:
aNode がこのノードの子である場合は true、aNode が null の場合は false

getFirstChild

public TreeNode getFirstChild()
このノードの最初の子を返します。このノードに子がない場合は、NoSuchElementException をスローします。

戻り値:
このノードの最初の子
例外:
NoSuchElementException - このノードに子がない場合

getLastChild

public TreeNode getLastChild()
このノードの最後の子を返します。このノードに子がない場合は、NoSuchElementException をスローします。

戻り値:
このノードの最後の子
例外:
NoSuchElementException - このノードに子がない場合

getChildAfter

public TreeNode getChildAfter(TreeNode aChild)
このノードの子配列内で aChild の直後にくる子を返します。なお、aChild はこのノードの子でなければなりません。aChild が最後の子の場合は、null を返します。このメソッドは、このノードの子の O(n) の線形探索を実行して aChild を探します。n は子の数です。子の配列全体をたどるには、代わりに列挙を使います。

戻り値:
aChild の直後にくるこのノードの子
例外:
IllegalArgumentException - aChild が null の場合、またはこのノードの子でない場合
関連項目:
children

getChildBefore

public TreeNode getChildBefore(TreeNode aChild)
このノードの子配列内で aChild の直前にくる子を返します。なお、aChild はこのノードの子でなければなりません。aChild が最初の子の場合、null を返します。このメソッドは、このノードの子の O(n) の線形探索を実行して aChild を探します。n は子の数です。

戻り値:
aChild の直前にくるこのノードの子
例外:
IllegalArgumentException - aChild が null の場合、またはこのノードの子でない場合

isNodeSibling

public boolean isNodeSibling(TreeNode anotherNode)
anotherNode がこのノードと同じ親を持つ兄弟ウィジェットである場合は true を返します。ノードはそれ自身の兄弟ウィジェットです。anotherNode が null の場合は、false を返します。

パラメータ:
anotherNode - このノードの兄弟ウィジェットであるかどうかを調べるノード
戻り値:
anotherNode がこのノードの兄弟ウィジェットの場合は true

getSiblingCount

public int getSiblingCount()
このノードの兄弟ウィジェット数を返します。ノードはそれ自身の兄弟ウィジェットです。親も兄弟ウィジェットも持っていない場合、このメソッドは 1 を返します。

戻り値:
このノードの兄弟ウィジェット数

getNextSibling

public DefaultMutableTreeNode getNextSibling()
親の子配列にあるこのノードの次の兄弟ウィジェットを返します。このノードに親がない場合や、このノードが親の最後の子である場合は、null を返します。このメソッドは O(n) の線形探索を実行します。n は子の数です。配列全体をたどるには、代わりに親の子の列挙を使います。

戻り値:
このノードの直後にある、このノードの兄弟ウィジェット
関連項目:
children

getPreviousSibling

public DefaultMutableTreeNode getPreviousSibling()
親の子配列にあるこのノードの直前の兄弟ウィジェットを返します。このノードに親がない場合や、このノードが親の最初の子である場合は、null を返します。このメソッドは O(n) の線形探索を実行します。n は子の数です。

戻り値:
このノードの直前にある、このノードの兄弟ウィジェット

isLeaf

public boolean isLeaf()
このノードに子がない場合は true を返します。子のないノードと、子を持てないノードを見分けるには (たとえば、ファイルを空のディレクトリと区別するには)、このメソッドを getAllowsChildren と組み合わせて使います。

定義:
インタフェース TreeNode 内の isLeaf
戻り値:
このノードに子がない場合は true
関連項目:
getAllowsChildren()

getFirstLeaf

public DefaultMutableTreeNode getFirstLeaf()
このノードの下位ノードである最初の葉、つまり、このノード、またはその最初の子の最初の葉のどちらかを見つけて返します。このノードが葉の場合にはそれを返します。

戻り値:
このノードをルートにするサブツリー内の最初の葉
関連項目:
isLeaf(), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getLastLeaf

public DefaultMutableTreeNode getLastLeaf()
このノードの下位ノードである最後の葉、つまり、このノード、またはその最後の子の最後の葉のどちらかを見つけて返します。このノードが葉の場合にはそれを返します。

戻り値:
このノードをルートにするサブツリー内の最後の葉
関連項目:
isLeaf(), isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)

getNextLeaf

public DefaultMutableTreeNode getNextLeaf()
このノードの後ろの葉を返します。このノードがツリー内の最後の葉である場合は null を返します。

MutableNode インタフェースのこの実装では、このオペレーションはあまり効率的ではありません。次のノードを判定するには、このメソッドは最初に現在のノードを見つけるために親の子リストで線形探索を実行します。

この実装は、オペレーションを既知の位置から短いトラバーサルを行うのに適したものにします。ツリー内のすべての葉をたどるには、depthFirstEnumeration を使ってツリー内のノードを列挙し、isLeaf を各ノードに使ってどれが葉であるかを判定します。

戻り値:
このノードの次の葉
関連項目:
depthFirstEnumeration(), isLeaf()

getPreviousLeaf

public DefaultMutableTreeNode getPreviousLeaf()
このノードの前の葉を返します。このノードがツリー内の最初の葉である場合は null を返します。

MutableNode インタフェースのこの実装では、このオペレーションはあまり効率的ではありません。直前のノードを判定するには、このメソッドは最初に現在のノードを見つけるために親の子リストで線形探索を実行します。

この実装は、オペレーションを既知の位置から短いトラバーサルを行うのに適したものにします。ツリー内のすべての葉をたどるには、depthFirstEnumeration を使ってツリー内のノードを列挙し、isLeaf を各ノードに使ってどれが葉であるかを判定します。

戻り値:
このノードの前の葉
関連項目:
depthFirstEnumeration(), isLeaf()

getLeafCount

public int getLeafCount()
このノードの下位ノードである葉の合計数を返します。このノードが葉である場合は、1 を返します。このメソッドは O(n) です。n はこのノードの下位ノードの数です。

戻り値:
このノードより下の部分にある葉の数
関連項目:
isNodeAncestor(javax.swing.tree.TreeNode)

toString

public String toString()
toString() をこのノードのユーザオブジェクトに送った結果を返します。このノードにユーザオブジェクトがない場合は null を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクトの文字列表現
関連項目:
getUserObject()

clone

public Object clone()
オーバーライドされて、複製を public にします。このノードのシャローコピーを返します。つまり、新しいノードは親や子を持たず、同じユーザオブジェクトがあればそれを参照します。

オーバーライド:
クラス Object 内の clone
戻り値:
このノードのコピー
関連項目:
Cloneable

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.