JavaTM 2 Platform
Standard Ed. 5.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 に適しています。JDK バージョン 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

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() がメッセージとして送られます。


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 - ルートノードへのパス
childIndices - 変更された要素のインデックス
children - 変更された要素
関連項目:
EventListenerList

fireTreeNodesInserted

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

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

fireTreeNodesRemoved

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

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

fireTreeStructureChanged

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

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

getListeners

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

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
Standard Ed. 5.0

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

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。