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(クラス<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ツリーのルートです。 -
listenerList
protected EventListenerList listenerListリスナーです。 -
asksAllowsChildren
protected boolean asksAllowsChildrenノードが葉ノードかどうかをisLeaf
メソッドが判断する方法を決定します。 trueの場合、ノードが子を許可しなければ葉ノードです。 子を許可する場合は、子が存在しなくても葉ノードではありません。 これで、たとえばファイル・システムのフォルダ・ノードとファイル・ノードを区別できます。この値がfalseの場合は、子を持たないノードは葉ノードで、どのノードでも子を持つことができます。
-
-
コンストラクタの詳細
-
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を返します。 -
getIndexOfChild
親の子のインデックスを返します。 親か子のどちらかがnull
の場合は、-1を返します。- 定義:
getIndexOfChild
、インタフェース:TreeModel
- パラメータ:
parent
- このデータ・ソースから取得された、ツリー内のノードchild
- 対象となるノード- 戻り値:
- 親の子のインデックス。親または子が
null
の場合は -1
-
getChild
親の持つ子配列の、インデックスindexにあるparentの子を返します。parentは、このデータ・ソースからそれまでに取得されたノードである必要があります。 indexがparentの有効なインデックス(つまり、index>= 0 & index < getChildCount(parent))である場合は、nullを返しません。 -
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
パスで識別される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
ユーザーがいくつかの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
ルート・ノードまでを含むノードの親を構築します。ただし、元のノードは返される配列内の最後の要素です。 返される配列の長さは、ツリー内のノードの深さを指定します。- パラメータ:
aNode
- パスを取得するTreeNode- 戻り値:
- ルートからのパスを与えるTreeNodeの配列
-
getPathToRoot
ルート・ノードまでを含むノードの親を構築します。ただし、元のノードは返される配列内の最後の要素です。 返される配列の長さは、ツリー内のノードの深さを指定します。- パラメータ:
aNode
- パスを取得するTreeNodedepth
- 返される配列のサイズ指定に使用する、(再帰呼出しで)すでに取得済みのルートまでのステップ数を示す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()
-