JavaTM Platform
Standard Ed. 6

javax.swing.tree
インタフェース TreeModel

既知の実装クラスの一覧:
DefaultTreeModel

public interface TreeModel

JTree が使用するモデルです。

JTree とその関連クラスは、TreeModel 内のノードを識別するために TreePath を広範囲にわたって使用します。TreeModel で、同じ親の下の 2 つの異なるインデックスにある同じオブジェクト (equals で比較されたもの) が返されると、結果として得られる TreePath オブジェクトも同様に等しいと見なされます。一部の実装では、2 つの TreePath が等しい場合、それらは同じノードと見なされることがあります。この条件が満たされないと、ペイント問題やその他の異常な事態が発生する場合があります。言い換えれば、特定の親に対する getChild で同じ Object (equals で判定されたもの) が返された場合は問題が発生することがあるため、このような処理は行わないことをお勧めします。

同様に、JTree とその関連クラスは、TreePathMap 内に配置します。このため、ノードが 2 回要求された場合は、戻り値が等しく (equals メソッドを使用)、hashCode が同じである必要があります。

カスタム実装の例を含むツリーモデルの詳細については、「The Java Tutorial」の「How to Use Trees」を参照してください。

関連項目:
TreePath

メソッドの概要
 void addTreeModelListener(TreeModelListener l)
          ツリーが変更されたあとに送信された TreeModelEvent のリスナーを追加します。
 Object getChild(Object parent, int index)
          親の持つ子配列の、インデックス index にある parent の子を返します。
 int getChildCount(Object parent)
          parent の子の数を返します。
 int getIndexOfChild(Object parent, Object child)
          親の子のインデックスを返します。
 Object getRoot()
          ツリーのルートを返します。
 boolean isLeaf(Object node)
          node が葉である場合は true を返します。
 void removeTreeModelListener(TreeModelListener l)
          以前に addTreeModelListener で追加されたリスナーを削除します。
 void valueForPathChanged(TreePath path, Object newValue)
          newValue への path によって識別される項目の値をユーザーが変更すると、メッセージとして送信されます。
 

メソッドの詳細

getRoot

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

戻り値:
ツリーのルート

getChild

Object getChild(Object parent,
                int index)
親の持つ子配列の、インデックス index にある parent の子を返します。parent は、このデータソースからそれまでに取得されたノードである必要があります。index が parent の有効なインデックス (つまり、index >= 0 && index < getChildCount(parent)) である場合は、null を返しません。

パラメータ:
parent - このデータソースから取得された、ツリー内のノード
戻り値:
インデックス index にある parent の子

getChildCount

int getChildCount(Object parent)
parent の子の数を返します。ノードが葉の場合や、ノードが子を持たない場合は、0 を返します。 parent は、このデータソースからそれまでに取得されたノードである必要があります。

パラメータ:
parent - このデータソースから取得された、ツリー内のノード
戻り値:
ノード parent の子の数

isLeaf

boolean isLeaf(Object node)
node が葉である場合は true を返します。node が子を持たない場合でも、このメソッドは false を返すことができます。たとえば、ファイルシステムのディレクトリにファイルが入っていない場合、そのディレクトリを表すノードは葉でないだけでなく、子も持っていません。

パラメータ:
node - このデータソースから取得された、ツリー内のノード
戻り値:
node が葉の場合は true

valueForPathChanged

void valueForPathChanged(TreePath path,
                         Object newValue)
newValue への path によって識別される項目の値をユーザーが変更すると、メッセージとして送信されます。newValue が本当に新しい値を意味する場合には、モデルは treeNodesChanged イベントを送信しなければいけません。

パラメータ:
path - ユーザーが変更したノードへのパス
newValue - TreeCellEditor からの新しい値

getIndexOfChild

int getIndexOfChild(Object parent,
                    Object child)
親の子のインデックスを返します。parent または child のどちらかが null の場合は、-1 を返します。 parent または child のどちらかがこのツリーモデルに属していない場合も、-1 を返します。

パラメータ:
parent - このデータソースから取得された、ツリー内のノード
child - 対象となるノード
戻り値:
親の子のインデックス。 child または parentnull であるか、 このツリーモデルに属していない場合は -1

addTreeModelListener

void addTreeModelListener(TreeModelListener l)
ツリーが変更されたあとに送信された TreeModelEvent のリスナーを追加します。

パラメータ:
l - 追加するリスナー
関連項目:
removeTreeModelListener(javax.swing.event.TreeModelListener)

removeTreeModelListener

void removeTreeModelListener(TreeModelListener l)
以前に addTreeModelListener で追加されたリスナーを削除します。

パラメータ:
l - 削除するリスナー
関連項目:
addTreeModelListener(javax.swing.event.TreeModelListener)

JavaTM Platform
Standard Ed. 6

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

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