JavaTM 2
Platform
Std. Ed. v1.4.0

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 では、すべての JavaBeansTM の長期運用サポートが、 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)
          親における子のインデックスを返します。
 EventListener[] getListeners(Class 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

public DefaultTreeModel(TreeNode root)
どのノードでも子を持てるツリーを作成します。

パラメータ:
root - ツリーのルートである TreeNode オブジェクト
関連項目:
DefaultTreeModel(TreeNode, boolean)

DefaultTreeModel

public DefaultTreeModel(TreeNode root,
                        boolean asksAllowsChildren)
どのノードでも子を持てるかどうか、特定のノードだけが子を持てるかどうかを指定するツリーを作成します。

パラメータ:
root - ツリーのルートである TreeNode オブジェクト
関連項目:
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 に設定します。null の root は、ツリーには何も表示されず、かつ適正であることを意味します。


getRoot

public Object getRoot()
ツリーのルートを返します。ツリーにノードがない場合だけ、null を返します。

定義:
インタフェース TreeModel 内の getRoot
戻り値:
ツリーのルート

getIndexOfChild

public int getIndexOfChild(Object parent,
                           Object child)
親における子のインデックスを返します。親か子のどちらかが null の場合は、-1 を返します。

定義:
インタフェース TreeModel 内の getIndexOfChild
パラメータ:
parent - このデータソースから取得された、ツリー内のノード
child - 対象となるノード
戻り値:
親における子のインデックス。親か子のどちらかが null の場合は -1

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
パラメータ:
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

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)

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 - 変更されるノード
path - ルートノードへのパス
children - 変更された要素
関連項目:
EventListenerList

fireTreeNodesInserted

protected void fireTreeNodesInserted(Object source,
                                     Object[] path,
                                     int[] childIndices,
                                     Object[] children)
このイベントタイプの通知を配信対象として登録しているリスナーすべてに通知します。fire メソッドに渡されたパラメータを使用して、イベントのインスタンスは生成されます。

パラメータ:
source - 新しい要素が挿入されるノード
path - ルートノードへのパス
children - 新規要素
関連項目:
EventListenerList

fireTreeNodesRemoved

protected void fireTreeNodesRemoved(Object source,
                                    Object[] path,
                                    int[] childIndices,
                                    Object[] children)
このイベントタイプの通知を配信対象として登録しているリスナーすべてに通知します。fire メソッドに渡されたパラメータを使用して、イベントのインスタンスは生成されます。

パラメータ:
source - 要素が削除されるノード
path - ルートノードへのパス
children - 削除された要素
関連項目:
EventListenerList

fireTreeStructureChanged

protected void fireTreeStructureChanged(Object source,
                                        Object[] path,
                                        int[] childIndices,
                                        Object[] children)
このイベントタイプの通知を配信対象として登録しているリスナーすべてに通知します。fire メソッドに渡されたパラメータを使用して、イベントのインスタンスは生成されます。

パラメータ:
source - ツリーモデルが変更されたノード
path - ルートノードへのパス
children - 影響を受ける要素
関連項目:
EventListenerList

getListeners

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

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

TreeModelListener[] tmls = (TreeModelListener[])(m.getListeners(TreeModelListener.class));
この種のリスナーが存在しない場合、このメソッドでは空の配列が返されます。

パラメータ:
listenerType - 要求されるリスナーのタイプ。このパラメータは java.util.EventListener から派生するインタフェースを指定する
戻り値:
このコンポーネントに FooListener として登録されたすべてのオブジェクトからなる配列。この種のリスナーが追加されていない場合は、空の配列
例外:
ClassCastException - listenerTypejava.util.EventListener を実装するクラスやインタフェースを指定しない場合
導入されたバージョン:
1.3
関連項目:
getTreeModelListeners()

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

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