モジュール java.desktop
パッケージ 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以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 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)
      このメソッドを呼び出して、親の子たちの位置インデックスに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)
      ユーザーがいくつかのTreeNodeをノードに挿入したあとでこのメソッドを呼び出します。
      void nodesWereRemoved​(TreeNode node, int[] childIndices, Object[] removedChildren)
      ユーザーがいくつかのTreeNodeをノードから削除したあとでこのメソッドを呼び出します。
      void reload​()
      ユーザーがこのモデルの依存するTreeNodeを変更した場合、このメソッドを呼び出します。
      void reload​(TreeNode node)
      ユーザーがこのモデルの依存するTreeNodeを変更した場合、このメソッドを呼び出します。
      void removeNodeFromParent​(MutableTreeNode node)
      このメソッドをメッセージとして送って、ノードをその親から削除します。
      void removeTreeModelListener​(TreeModelListener l)
      以前にaddTreeModelListener()で追加されたリスナーを削除します。
      void setAsksAllowsChildren​(boolean newValue)
      TreeNodeにgetAllowsChildren()またはisLeaf()で問い合わせることにより、葉かどうかの判定をするかしないかを設定します。
      void setRoot​(TreeNode root)
      ルートをrootに設定します。
      void valueForPathChanged​(TreePath path, Object newValue)
      パスで識別されるTreeNodeのユーザー・オブジェクトを設定し、変更済みのノードを送ります。
    • フィールドの詳細

      • root

        protected TreeNode root
        ツリーのルートです。
      • asksAllowsChildren

        protected boolean asksAllowsChildren
        ノードが葉ノードかどうかをisLeafメソッドが判断する方法を決定します。 trueの場合、ノードが子を許可しなければ葉ノードです。 子を許可する場合は、子が存在しなくても葉ノードではありません。 これで、たとえばファイル・システムのフォルダ・ノードとファイル・ノードを区別できます。

        この値がfalseの場合は、子を持たないノードは葉ノードで、どのノードでも子を持つことができます。

        関連項目:
        TreeNode.getAllowsChildren(), TreeModel.isLeaf(java.lang.Object), setAsksAllowsChildren(boolean)
    • コンストラクタの詳細

      • DefaultTreeModel

        public DefaultTreeModel​(TreeNode root,
                                boolean asksAllowsChildren)
        どのノードでも子を持てるかどうか、特定のノードだけが子を持てるかどうかを指定するツリーを作成します。
        パラメータ:
        root - ツリーのルートであるTreeNodeオブジェクト
        asksAllowsChildren - boolean型。どのノードでも子を持てる場合はfalse、各ノードが子を持てるかどうか確認するように求められる場合はtrue
        関連項目:
        asksAllowsChildren
    • メソッドの詳細

      • setAsksAllowsChildren

        public void setAsksAllowsChildren​(boolean newValue)
        TreeNodeにgetAllowsChildren()またはisLeaf()で問い合わせることにより、葉かどうかの判定をするかしないかを設定します。 newvalueがtrueの場合は、getAllowsChildren()がメッセージとして送られます。そうでない場合は、isLeaf()がメッセージとして送られます。
        パラメータ:
        newValue - trueの場合はgetAllowsChildren()がメッセージされ、そうでない場合はisLeaf()がメッセージされます。
      • asksAllowsChildren

        public boolean asksAllowsChildren​()
        葉ノードの判別方法を通知します。
        戻り値:
        子を許可しないノードだけが葉ノードである場合はtrue、子を持たないノード(子は許可されていても)が葉ノードである場合はfalse
        関連項目:
        asksAllowsChildren
      • setRoot

        public void setRoot​(TreeNode root)
        ルートをrootに設定します。 nullのrootは、ツリーには何も表示されず、かつ適正であることを意味します。
        パラメータ:
        root - ツリー・ルートの新しい値
      • getRoot

        public Object getRoot​()
        ツリーのルートを返します。 ツリーにノードがない場合だけ、nullを返します。
        定義:
        getRoot、インタフェース: TreeModel
        戻り値:
        ツリーのルート
      • getIndexOfChild

        public int getIndexOfChild​(Object parent,
                                   Object child)
        親の子のインデックスを返します。 親か子のどちらかがnullの場合は、-1を返します。
        定義:
        getIndexOfChild、インタフェース: TreeModel
        パラメータ:
        parent - このデータ・ソースから取得された、ツリー内のノード
        child - 対象となるノード
        戻り値:
        親の子のインデックス。親または子がnullの場合は -1
      • getChild

        public Object getChild​(Object parent,
                               int index)
        親の持つ子配列の、インデックスindexにあるparentの子を返します。parentは、このデータ・ソースからそれまでに取得されたノードである必要があります。 indexparentの有効なインデックス(つまり、index>= 0 & index < getChildCount(parent))である場合は、nullを返しません。
        定義:
        getChild、インタフェース: TreeModel
        パラメータ:
        parent - このデータ・ソースから取得された、ツリー内のノード
        index - 返される子のインデックス
        戻り値:
        インデックスindexにあるparentの子
      • getChildCount

        public int getChildCount​(Object parent)
        parentの子の数を返します。 ノードが葉の場合や、ノードが子を持たない場合は、0を返します。parentは、このデータ・ソースからそれまでに取得されたノードである必要があります。
        定義:
        getChildCount、インタフェース: TreeModel
        パラメータ:
        parent - このデータ・ソースから取得された、ツリー内のノード
        戻り値:
        ノードparentの子の数
      • isLeaf

        public boolean isLeaf​(Object node)
        指定のノードが葉ノードかどうかを返します。 判定の実行方法は、askAllowsChildrenの設定に依存します。
        定義:
        isLeaf、インタフェース: TreeModel
        パラメータ:
        node - チェック対象のノード
        戻り値:
        ノードが葉ノードの場合はtrue
        関連項目:
        asksAllowsChildren, TreeModel.isLeaf(java.lang.Object)
      • reload

        public void reload​()
        ユーザーがこのモデルの依存するTreeNodeを変更した場合、このメソッドを呼び出します。 モデルは、それ自身が変更済みであることを、そのリスナーのすべてに通知します。
      • valueForPathChanged

        public void valueForPathChanged​(TreePath path,
                                        Object newValue)
        パスで識別されるTreeNodeのユーザー・オブジェクトを設定し、変更済みのノードを送ります。 TreeModel内のカスタム・ユーザー・オブジェクトを使用すると、これをサブクラス化し、変更済みノードのユーザー・オブジェクトを意味のある内容に設定する必要がでてきます。
        定義:
        valueForPathChanged、インタフェース: TreeModel
        パラメータ:
        path - ユーザーが変更したノードへのパス
        newValue - TreeCellEditorからの新しい値
      • insertNodeInto

        public void insertNodeInto​(MutableTreeNode newChild,
                                   MutableTreeNode parent,
                                   int index)
        このメソッドを呼び出して、親の子たちの位置インデックスにnewChildを挿入します。 それから、nodesWereInsertedをメッセージとして送り、適切なイベントを生成します。 適切なイベントを生成するので、子を追加するための望ましい方法です。
        パラメータ:
        newChild - 挿入される子ノード
        parent - 子ノードが追加されるノード
        index - 親子のインデックス
      • removeNodeFromParent

        public void removeNodeFromParent​(MutableTreeNode node)
        このメソッドをメッセージとして送って、ノードをその親から削除します。 それから、nodesWereRemovedをメッセージとして送り、適切なイベントを生成します。 イベント生成をユーザーのために処理するので、ノードを削除するための望ましい方法です。
        パラメータ:
        node - それから削除されるべきノードはパラレン
      • nodeChanged

        public void nodeChanged​(TreeNode node)
        ユーザーがツリー内のノードの表現方法を変更したあとで、このメソッドを呼び出します。
        パラメータ:
        node - 変更されたノード
      • reload

        public void reload​(TreeNode node)
        ユーザーがこのモデルの依存するTreeNodeを変更した場合、このメソッドを呼び出します。 モデルは、指定のノードより下の部分で変更されたことを、そのすべてのリスナーに通知します。
        パラメータ:
        node - 特定のノード。モデルはこのノードより下の部分で変更された
      • nodesWereInserted

        public void nodesWereInserted​(TreeNode node,
                                      int[] childIndices)
        ユーザーがいくつかのTreeNodeをノードに挿入したあとでこのメソッドを呼び出します。childIndicesは新しい要素のインデックスで、昇順でソートされる必要があります。
        パラメータ:
        node - 子ノードの数が増えた親ノード
        childIndices - 挿入された子どものインデックス
      • nodesWereRemoved

        public void nodesWereRemoved​(TreeNode node,
                                     int[] childIndices,
                                     Object[] removedChildren)
        ユーザーがいくつかのTreeNodeをノードから削除した後でこのメソッドを呼び出します。childIndicesは削除された要素のインデックスで、昇順でソートされる必要があります。 そして、removedChildrenは、削除された子オブジェクトの配列になります。
        パラメータ:
        node - 子ノードが削除された親ノード
        childIndices - 削除された子のインデックス
        removedChildren - 削除された子オブジェクトの配列
      • nodesChanged

        public void nodesChanged​(TreeNode node,
                                 int[] childIndices)
        childIndiciesで識別される子をツリー内で表現する方法をユーザーが変更したあとで、このメソッドを呼び出します。
        パラメータ:
        node - 変更されたノード
        childIndices - 変更された子どものインデックス
      • nodeStructureChanged

        public void nodeStructureChanged​(TreeNode node)
        ノードの子、その子の子、などのようにユーザーがノードの子孫を全体的に変更した場合に、このメソッドを呼び出します。このメソッドは、treeStructureChangedイベントを送ります。
        パラメータ:
        node - 変更されたノード
      • getPathToRoot

        public TreeNode[] getPathToRoot​(TreeNode aNode)
        ルート・ノードまでを含むノードの親を構築します。ただし、元のノードは返される配列内の最後の要素です。 返される配列の長さは、ツリー内のノードの深さを指定します。
        パラメータ:
        aNode - パスを取得するTreeNode
        戻り値:
        ルートからのパスを与えるTreeNodeの配列
      • getPathToRoot

        protected TreeNode[] getPathToRoot​(TreeNode aNode,
                                           int depth)
        ルート・ノードまでを含むノードの親を構築します。ただし、元のノードは返される配列内の最後の要素です。 返される配列の長さは、ツリー内のノードの深さを指定します。
        パラメータ:
        aNode - パスを取得するTreeNode
        depth - 返される配列のサイズ指定に使用する、(再帰呼出しで)すでに取得済みのルートまでのステップ数を示すint値
        戻り値:
        ルートから指定されたノードまでのパスを示すTreeNodeの配列
      • fireTreeNodesChanged

        protected void fireTreeNodesChanged​(Object source,
                                            Object[] path,
                                            int[] childIndices,
                                            Object[] children)
        このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベント・インスタンスは、fireメソッドに渡されるパラメータを使って簡単に生成されます。
        パラメータ:
        source - TreeModelEventの発生元(通常はthis)
        path - 変更されたノードの親へのパス。ルートが変更されたことを特定するには、nullを使用する
        childIndices - 変更された要素のインデックス
        children - 変更された要素
      • fireTreeNodesInserted

        protected void fireTreeNodesInserted​(Object source,
                                             Object[] path,
                                             int[] childIndices,
                                             Object[] children)
        このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベント・インスタンスは、fireメソッドに渡されるパラメータを使って簡単に生成されます。
        パラメータ:
        source - TreeModelEventの発生元(通常はthis)
        path - ノードが追加された親へのパス
        childIndices - 新しい要素のインデックス
        children - 新規要素
      • fireTreeNodesRemoved

        protected void fireTreeNodesRemoved​(Object source,
                                            Object[] path,
                                            int[] childIndices,
                                            Object[] children)
        このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベント・インスタンスは、fireメソッドに渡されるパラメータを使って簡単に生成されます。
        パラメータ:
        source - TreeModelEventの発生元(通常はthis)
        path - ノードが削除された親へのパス
        childIndices - 削除された要素のインデックス
        children - 削除された要素
      • fireTreeStructureChanged

        protected void fireTreeStructureChanged​(Object source,
                                                Object[] path,
                                                int[] childIndices,
                                                Object[] children)
        このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベント・インスタンスは、fireメソッドに渡されるパラメータを使って簡単に生成されます。
        パラメータ:
        source - TreeModelEventの発生元(通常はthis)
        path - 変更された構造体の親へのパス。ルートが変更されたことを特定するには、nullを使用する
        childIndices - 影響を受ける要素のインデックス
        children - 影響を受ける要素
      • getListeners

        public <T extends EventListener> T[] getListeners​(Class<T> listenerType)
        このモデルにFooListenerとして現在登録されているすべてのオブジェクトの配列を返します。 FooListenerは、addFooListenerメソッドを使用して登録されます。

        FooListener.classなどのクラス・リテラルを使用してlistenerType引数を指定できます。 たとえば、次のコードを使用して、DefaultTreeModel mをそのツリー・モデル・リスナーに照会できます。

        TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));
        このようなリスナーがない場合は空の配列を返します。
        型パラメータ:
        T - リスナー型
        パラメータ:
        listenerType - リクエストされたリスナーの型
        戻り値:
        このコンポーネント上でFooListenerとして登録されたすべてのオブジェクトの配列、またはこのようなリスナーが追加されていない場合は空の配列
        例外:
        ClassCastException - listenerTypeで、java.util.EventListenerを実装するクラスまたはインタフェースが指定されなかった場合
        導入されたバージョン:
        1.3
        関連項目:
        getTreeModelListeners()