モジュール java.desktop
パッケージ 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には、ユーザー・オブジェクトへの参照、つまりユーザーが独自に定義するオブジェクトへの参照も格納できます。 DefaultMutableTreeNodetoString()を指定してその文字列表現を要求すると、そのユーザー・オブジェクトの文字列表現を返します。

    このクラスはスレッド・セーフではありません。複数のスレッドで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です。
      • children

        protected Vector<TreeNode> 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、およびこのノードの上位ノードにすることはできません。
        定義:
        insert、インタフェース: MutableTreeNode
        パラメータ:
        newChild - このノードより下位の部分に挿入するMutableTreeNode
        childIndex - このノードの挿入先である、このノードの子配列のインデックス
        例外:
        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を返します。
        定義:
        getParent、インタフェース: TreeNode
        戻り値:
        このノードの親TreeNode。このノードに親がない場合は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()
        このノードの子の順方向列挙を作成して返します。 このノードの子配列を変更すると、変更前に作成された子の列挙はどれも無効になります。
        定義:
        children、インタフェース: TreeNode
        戻り値:
        このノードの子のEnumeration
      • 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に設定します。 このノードが子を持たない場合、このメソッドは処理を行いません。
      • 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 - パスを取得する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<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()
      • clone

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