JavaTM 2 Platform
Std. Ed. v1.3

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 に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。

関連項目:
直列化された形式

フィールドの概要
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)
          親の子のインデックスを返します。
 EventListener[] getListeners(Class listenerType)
          このモデルに追加された、指定されたタイプのリスナーすべての配列を返します。
 TreeNode[] getPathToRoot(TreeNode aNode)
          ルートノードまでを含むノードの親を構築します。
protected  TreeNode[] getPathToRoot(TreeNode aNode, int depth)
          ルートノードまでを含むノードの親を構築します。
 Object getRoot()
          ツリーのルートを返します。
 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

public DefaultTreeModel(TreeNode root)
どのノードでも子を持てるツリーを作成します。
パラメータ:
root - ツリーのルートである TreeNode オブジェクト
関連項目:
DefaultTreeModel(TreeNode, boolean)

DefaultTreeModel

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

setAsksAllowsChildren

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

asksAllowsChildren

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

setRoot

public void setRoot(TreeNode root)
ルートを root に設定します。root が null である場合は IllegalArgumentException をスローします。

getRoot

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

getIndexOfChild

public int getIndexOfChild(Object parent,
                           Object child)
親の子のインデックスを返します。
定義:
インタフェース TreeModel 内の getIndexOfChild

getChild

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

getChildCount

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

isLeaf

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

reload

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

valueForPathChanged

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

insertNodeInto

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

removeNodeFromParent

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

nodeChanged

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

reload

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

nodesWereInserted

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

nodesWereRemoved

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

nodesChanged

public void nodesChanged(TreeNode node,
                         int[] childIndices)
childIndicies で識別される子をツリー内で表現する方法をユーザが変更したあとで、このメソッドを呼び出します。

nodeStructureChanged

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

getPathToRoot

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

getPathToRoot

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

addTreeModelListener

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

removeTreeModelListener

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

fireTreeNodesChanged

protected void fireTreeNodesChanged(Object source,
                                    Object[] path,
                                    int[] childIndices,
                                    Object[] children)

fireTreeNodesInserted

protected void fireTreeNodesInserted(Object source,
                                     Object[] path,
                                     int[] childIndices,
                                     Object[] children)

fireTreeNodesRemoved

protected void fireTreeNodesRemoved(Object source,
                                    Object[] path,
                                    int[] childIndices,
                                    Object[] children)

fireTreeStructureChanged

protected void fireTreeStructureChanged(Object source,
                                        Object[] path,
                                        int[] childIndices,
                                        Object[] children)

getListeners

public EventListener[] getListeners(Class listenerType)
このモデルに追加された、指定されたタイプのリスナーすべての配列を返します。
戻り値:
このモデルから listenerType 通知を受け取ったすべてのオブジェクト
導入されたバージョン:
1.3

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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