モジュール java.desktop
パッケージ javax.swing.tree

クラスDefaultTreeModel

java.lang.Object
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のユーザー・オブジェクトを設定し、変更済みのノードを送ります。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • root

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

      protected EventListenerList listenerList
      リスナーです。
    • asksAllowsChildren

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

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

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

    • DefaultTreeModel

      @ConstructorProperties("root")public DefaultTreeModel​(TreeNode root)
      どのノードでも子を持てるツリーを作成します。
      パラメータ:
      root - ツリーのルートであるTreeNodeオブジェクト
      関連項目:
      DefaultTreeModel(TreeNode, 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の配列
    • addTreeModelListener

      public void addTreeModelListener​(TreeModelListener l)
      ツリーが変更されたあとに送信されたTreeModelEventのリスナーを追加します。
      定義:
      addTreeModelListener、インタフェース: TreeModel
      パラメータ:
      l - 追加するリスナー
      関連項目:
      removeTreeModelListener(javax.swing.event.TreeModelListener)
    • removeTreeModelListener

      public void removeTreeModelListener​(TreeModelListener l)
      以前にaddTreeModelListener()で追加されたリスナーを削除します。
      定義:
      removeTreeModelListener、インタフェース: TreeModel
      パラメータ:
      l - 削除するリスナー
      関連項目:
      addTreeModelListener(javax.swing.event.TreeModelListener)
    • getTreeModelListeners

      public TreeModelListener[] getTreeModelListeners()
      このモデルに登録された、すべてのツリー・モデル・リスナーからなる配列を返します。
      戻り値:
      このモデルのTreeModelListener全部。ツリー・モデル・リスナーが現在登録されていない場合は空の配列
      導入されたバージョン:
      1.4
      関連項目:
      addTreeModelListener(javax.swing.event.TreeModelListener), removeTreeModelListener(javax.swing.event.TreeModelListener)
    • 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()