- java.lang.Object
-
- javax.swing.tree.DefaultMutableTreeNode
-
- すべての実装されたインタフェース:
Serializable
,Cloneable
,MutableTreeNode
,TreeNode
- 直系の既知のサブクラス:
JTree.DynamicUtilTreeNode
public class DefaultMutableTreeNode extends Object implements Cloneable, MutableTreeNode, Serializable
DefaultMutableTreeNode
は、ツリー・データ構造の汎用ノードです。 デフォルトの可変ツリー・ノードの使用例は、「The Java Tutorial」の「How to Use Trees」を参照してください。ツリー・ノードは最大1つの親と、ゼロ個以上の子を持ちます。
DefaultMutableTreeNode
は、ノードの親と子の検査と変更を行うための操作と、そのノードによって構成されるツリーを検査する操作を提供します。 ノードのツリーは、そのノードを起点とする親と子へのすべての可能なリンクをたどって到達できる、すべてのノードから構成されます。 親を持たないノードはそのツリーのルートで、子を持たないノードは葉です。 ツリーは多数のサブツリーを持つことができ、各ノードはそのサブツリーのルートになります。このクラスは、ツリーまたはサブツリーをさまざまな順序で効率的にたどる方法や、2つのノード間のパスをたどるための方法を列挙します。
DefaultMutableTreeNode
には、ユーザー・オブジェクトへの参照、つまりユーザーが独自に定義するオブジェクトへの参照も格納できます。DefaultMutableTreeNode
にtoString()
を指定してその文字列表現を要求すると、そのユーザー・オブジェクトの文字列表現を返します。このクラスはスレッド・セーフではありません。複数のスレッドでDefaultMutableTreeNode (つまり、TreeNodeのツリー)を使用する場合、ユーザー自身が同期を行う必要があります。 慣例では、ツリーのルート・ノードで同期させます。
DefaultMutableTreeNodeはMutableTreeNodeインタフェースを実装し、MutableTreeNodeのあらゆる実装にメソッドを追加できますが、DefaultMutableTreeNodeのすべてのメソッドがMutableTreeNodeのすべての実装に適用できるとは限りません。 提供される列挙の一部では特に、そうしたメソッドの一部を使用すると、DefaultMutableTreeNodeはDefaultMutableNodeのインスタンスだけを含む場合があります。 TreeNode/MutableTreeNodeメソッドはすべて、どの実装が追加されても定義されたように動作します。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートが
java.beans
パッケージに追加されています。XMLEncoder
を参照してください。- 関連項目:
MutableTreeNode
, 「直列化されたフォーム」
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 protected boolean
allowsChildren
ノードが子を持つことができる場合はtrueです。protected Vector<TreeNode>
children
複数の子の配列です。このノードに子がない場合はnullです。static Enumeration<TreeNode>
EMPTY_ENUMERATION
常に空の列挙です。protected MutableTreeNode
parent
このノードの親です。このノードに親がない場合はnullです。protected Object
userObject
オプションのユーザー・オブジェクトです。
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 DefaultMutableTreeNode()
親も子も持たないツリー・ノードを作成します。このツリー・ノードは子を持つことができます。DefaultMutableTreeNode(Object userObject)
親も子も持たないツリー・ノードを作成し、指定されたユーザー・オブジェクトで初期化します。このツリー・ノードは子を持つことができます。DefaultMutableTreeNode(Object userObject, boolean allowsChildren)
親も子もないツリー・ノードを作成します。これは、指定されたユーザー・オブジェクトで初期化され、指定された場合にかぎり子を持つことができます。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 void
add(MutableTreeNode newChild)
newChild
をその親から削除し、このノードの子配列の末尾に追加して、このノードの子にします。Enumeration<TreeNode>
breadthFirstEnumeration()
このノードをルートにするサブツリーを幅優先でトラバースする列挙を生成して返します。Enumeration<TreeNode>
children()
このノードの子の順方向列挙を作成して返します。Object
clone()
オーバーライドされて、複製をpublicにします。Enumeration<TreeNode>
depthFirstEnumeration()
このノードをルートにするサブツリーを、深さ優先でトラバースする列挙を生成して返します。boolean
getAllowsChildren()
このノードが子を持つことを許可されている場合にtrueを返します。TreeNode
getChildAfter(TreeNode aChild)
このノードの子配列内でaChild
の直後にくる子を返します。なお、aChildはこのノードの子である必要があります。TreeNode
getChildAt(int index)
このノードの子配列にある、指定されたインデックスの子を返します。TreeNode
getChildBefore(TreeNode aChild)
このノードの子配列内でaChild
の直前にくる子を返します。なお、aChildはこのノードの子である必要があります。int
getChildCount()
このノードの子の数を返します。int
getDepth()
このノードをルートにするツリーの深さ、つまりこのノードから葉までの最長の距離を返します。TreeNode
getFirstChild()
このノードの最初の子を返します。DefaultMutableTreeNode
getFirstLeaf()
このノードの下位ノードである最初の葉、つまり、このノード、またはその最初の子の最初の葉のどちらかを見つけて返します。int
getIndex(TreeNode aChild)
このノードの子配列にある、指定された子のインデックスを返します。TreeNode
getLastChild()
このノードの最後の子を返します。DefaultMutableTreeNode
getLastLeaf()
このノードの下位ノードである最後の葉、つまり、このノード、またはその最後の子の最後の葉のどちらかを見つけて返します。int
getLeafCount()
このノードの下位ノードである葉の合計数を返します。int
getLevel()
このノードより上の部分のレベル数、つまりルートからこのノードまでの距離を返します。DefaultMutableTreeNode
getNextLeaf()
このノードの後ろの葉を返します。このノードがツリー内の最後の葉である場合はnullを返します。DefaultMutableTreeNode
getNextNode()
このノードのツリーの前順走査でこのノードの次にあるノードを返します。DefaultMutableTreeNode
getNextSibling()
親の子配列にあるこのノードの次の兄弟を返します。TreeNode
getParent()
このノードの親を返します。このノードに親がない場合はnullを返します。TreeNode[]
getPath()
ルートからこのノードに至るまでのパスを返します。protected TreeNode[]
getPathToRoot(TreeNode aNode, int depth)
ルート・ノードまでを含むノードの親を構築します。ただし、元のノードは返される配列内の最後の要素です。DefaultMutableTreeNode
getPreviousLeaf()
このノードの前の葉を返します。このノードがツリー内の最初の葉である場合はnullを返します。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<TreeNode>
pathFromAncestorEnumeration(TreeNode ancestor)
ancestor
からこのノードまでのパスをたどる列挙を生成して返します。Enumeration<TreeNode>
postorderEnumeration()
このノードをルートにするサブツリーを後順でトラバースする列挙を生成して返します。Enumeration<TreeNode>
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()
をこのノードのユーザー・オブジェクトに送った結果を返します。このノードにユーザー・オブジェクトがない場合は空の文字列を返します。
-
-
-
フィールドの詳細
-
EMPTY_ENUMERATION
public static final Enumeration<TreeNode> EMPTY_ENUMERATION
常に空の列挙です。 これは、葉ノードの子の列挙が要求されたときに使用されます。
-
parent
protected MutableTreeNode parent
このノードの親です。このノードに親がない場合は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
- ユーザーが提供する、ノードのデータを構成するObjectallowsChildren
- trueの場合、ノードは子ノードを持つことを許可される。そうでない場合、常に葉ノード
-
-
メソッドの詳細
-
insert
public void insert(MutableTreeNode newChild, int childIndex)
newChild
をその親があればその親から削除し、子の親をこのノードに設定してから、子をこのノードの子配列のインデックスchildIndex
に追加します。newChild
はnull、およびこのノードの上位ノードにすることはできません。- 定義:
insert
、インタフェースMutableTreeNode
- パラメータ:
newChild
- このノードより下位の部分に挿入するMutableTreeNodechildIndex
- このノードの挿入先である、このノードの子配列のインデックス- 例外:
ArrayIndexOutOfBoundsException
-childIndex
が範囲外にある場合IllegalArgumentException
-newChild
がnullの場合、またはこのノードの上位ノードである場合IllegalStateException
- このノードが子を許可しない場合- 関連項目:
isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
-
remove
public void remove(int childIndex)
このノードの複数の子から、指定されたインデックスの子を削除し、そのノードの親をnullに設定します。 削除する子ノードは、MutableTreeNode
でなければいけません。- 定義:
remove
、インタフェースMutableTreeNode
- パラメータ:
childIndex
- このノードの子配列で削除する対象の子のインデックス- 例外:
ArrayIndexOutOfBoundsException
-childIndex
が範囲外にある場合
-
setParent
public void setParent(MutableTreeNode newParent)
このノードの親をnewParent
に設定しますが、親の子配列は変更しません。 このメソッドは子の親を再び割り当てるために、insert()
とremove()
から呼び出されます。他のメソッドからメッセージとして送られることはありません。- 定義:
setParent
、インタフェースMutableTreeNode
- パラメータ:
newParent
- このノードの新しい親
-
getParent
public TreeNode getParent()
このノードの親を返します。このノードに親がない場合はnullを返します。
-
getChildAt
public TreeNode getChildAt(int index)
このノードの子配列にある、指定されたインデックスの子を返します。- 定義:
getChildAt
、インタフェースTreeNode
- パラメータ:
index
- このノードの子配列のインデックス- 戻り値:
- このノードの子配列にある、指定されたインデックスのTreeNode
- 例外:
ArrayIndexOutOfBoundsException
-index
が範囲外にある場合
-
getChildCount
public int getChildCount()
このノードの子の数を返します。- 定義:
getChildCount
、インタフェースTreeNode
- 戻り値:
- このノードの子の数を示すint値
-
getIndex
public int getIndex(TreeNode aChild)
このノードの子配列にある、指定された子のインデックスを返します。 指定されたノードがこのノードの子でない場合は、-1
を返します。 このメソッドは線形探索を実行し、O(n)です。ここでnは子の数です。- 定義:
getIndex
、インタフェースTreeNode
- パラメータ:
aChild
- このノードの複数の子の中から検索するTreeNode- 戻り値:
- このノードの子配列内のノードのインデックスを示すint値。指定のノードがこのノードの子でない場合は
-1
- 例外:
IllegalArgumentException
-aChild
がnullである場合
-
children
public Enumeration<TreeNode> children()
このノードの子の順方向列挙を作成して返します。 このノードの子配列を変更すると、変更前に作成された子の列挙はどれも無効になります。
-
setAllowsChildren
public void setAllowsChildren(boolean allows)
このノードが子を持つことを許可されるかどうかを設定します。allows
がfalseの場合は、このノードの子はすべて削除されます。ノート: デフォルトでは、ノードは子を許可します。
- パラメータ:
allows
- このノードが子を持つことを許可される場合はtrue
-
getAllowsChildren
public boolean getAllowsChildren()
このノードが子を持つことを許可されている場合にtrueを返します。- 定義:
getAllowsChildren
、インタフェースTreeNode
- 戻り値:
- このノードが子を許可している場合はtrue、そうでない場合はfalse
-
setUserObject
public void setUserObject(Object userObject)
このノードのユーザー・オブジェクトをuserObject
に設定します。- 定義:
setUserObject
、インタフェースMutableTreeNode
- パラメータ:
userObject
- このノードのユーザー指定のデータを構成するObject- 関連項目:
getUserObject()
,toString()
-
getUserObject
public Object getUserObject()
このノードのユーザー・オブジェクトを返します。- 戻り値:
- ユーザーによってこのノードに格納されるObject
- 関連項目:
setUserObject(java.lang.Object)
,toString()
-
removeFromParent
public void removeFromParent()
このノードをルートにするサブツリーをツリーから削除し、このノードにnullの親を与えます。 このノードがそのツリーのルートである場合は、処理を行いません。- 定義:
removeFromParent
、インタフェースMutableTreeNode
-
remove
public void remove(MutableTreeNode aChild)
aChild
をこのノードの子配列から削除し、それにnullの親を与えます。- 定義:
remove
、インタフェースMutableTreeNode
- パラメータ:
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
- 共通の上位ノードを見つけるノード- 戻り値:
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
- パスを取得するTreeNodedepth
- 返される配列のサイズ指定に使用する、(再帰呼出しで)すでに取得済みのルートまでのステップ数を示す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<TreeNode> preorderEnumeration()
このノードをルートにするサブツリーを前順でトラバースする列挙を生成して返します。 列挙型のnextElement()
メソッドによって返される最初のノードは、このノードです。ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。
- 戻り値:
- ツリーを前順走査するための列挙
- 関連項目:
postorderEnumeration()
-
postorderEnumeration
public Enumeration<TreeNode> postorderEnumeration()
このノードをルートにするサブツリーを後順でトラバースする列挙を生成して返します。 列挙型のnextElement()
メソッドによって返される最初のノードは、左端の葉です。 これは、深さ優先走査と同じです。ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。
- 戻り値:
- ツリーを後順走査するための列挙
- 関連項目:
depthFirstEnumeration()
,preorderEnumeration()
-
breadthFirstEnumeration
public Enumeration<TreeNode> breadthFirstEnumeration()
このノードをルートにするサブツリーを幅優先でトラバースする列挙を生成して返します。 列挙型のnextElement()
メソッドによって返される最初のノードは、このノードです。ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。
- 戻り値:
- ツリーを幅優先走査するための列挙
- 関連項目:
depthFirstEnumeration()
-
depthFirstEnumeration
public Enumeration<TreeNode> depthFirstEnumeration()
このノードをルートにするサブツリーを、深さ優先でトラバースする列挙を生成して返します。 列挙型のnextElement()
メソッドによって返される最初のノードは、左端の葉です。 これは、ポストオーダー探索と同じです。ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。
- 戻り値:
- ツリーを深さ優先走査するための列挙
- 関連項目:
breadthFirstEnumeration()
,postorderEnumeration()
-
pathFromAncestorEnumeration
public Enumeration<TreeNode> pathFromAncestorEnumeration(TreeNode ancestor)
ancestor
からこのノードまでのパスをたどる列挙を生成して返します。 列挙のnextElement()
メソッドは、最初にancestor
、次にこのノードの上位ノードであるancestor
の子というように順次返していき、最後にこのノードを返します。 列挙の生成はO(m)です。mはこのノードとancestor
の間(このノードとancestorを含む)のノード数です。 各nextElement()
メッセージはO(1)です。ノードの挿入、削除、移動でツリーを変更すると、変更前に作成された任意の列挙は無効になります。
- パラメータ:
ancestor
- 列挙を開始するノード- 戻り値:
- このノードの上位ノードからこれまでのパスをたどるための列挙
- 例外:
IllegalArgumentException
-ancestor
がこのノードの上位ノードでない場合- 関連項目:
isNodeAncestor(javax.swing.tree.TreeNode)
,isNodeDescendant(javax.swing.tree.DefaultMutableTreeNode)
-
isNodeChild
public boolean isNodeChild(TreeNode aNode)
aNode
がこのノードの子である場合はtrueを返します。aNode
がnullの場合、このメソッドはfalseを返します。- パラメータ:
aNode
- 子であるかどうかを決定するノード- 戻り値:
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
- 子ノードがそれの後の次の子を探す- 戻り値:
aChild
の直後にくるこのノードの子- 例外:
IllegalArgumentException
-aChild
がnullの場合、またはこのノードの子でない場合- 関連項目:
children
-
getChildBefore
public TreeNode getChildBefore(TreeNode aChild)
このノードの子配列内でaChild
の直前にくる子を返します。なお、aChildはこのノードの子である必要があります。aChild
が最初の子の場合、nullを返します。 このメソッドは、このノードの子のO(n)の線形探索を実行してaChild
を探します。nは子の数です。- パラメータ:
aChild
- 前の子を探す子ノード- 戻り値:
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
と組み合わせて使用します。- 定義:
isLeaf
、インタフェースTreeNode
- 戻り値:
- このノードに子がない場合は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()
をこのノードのユーザー・オブジェクトに送った結果を返します。このノードにユーザー・オブジェクトがない場合は空の文字列を返します。- オーバーライド:
toString
、クラスObject
- 戻り値:
- このオブジェクトの文字列表現
- 関連項目:
getUserObject()
-
-