public interface TreeModel
JTree
が使用するモデルです。
JTree
とその関連クラスは、TreeModel
内のノードを識別するために TreePath
を広範囲にわたって使用します。TreeModel
で、同じ親の下の 2 つの異なるインデックスにある同じオブジェクト (equals
で比較されたもの) が返されると、結果として得られる TreePath
オブジェクトも同様に等しいと見なされます。一部の実装では、2 つの TreePath
が等しい場合、それらは同じノードと見なされることがあります。この条件が満たされないと、ペイント問題やその他の異常な事態が発生する場合があります。言い換えれば、特定の親に対する getChild
で同じ Object (equals
で判定されたもの) が返された場合は問題が発生することがあるため、このような処理は行わないことをお勧めします。
同様に、JTree
とその関連クラスは、TreePath
を Map
内に配置します。このため、ノードが 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 によって識別される項目の値をユーザーが変更すると、メッセージとして送信されます。 |
Object getRoot()
null
を返します。Object getChild(Object parent, int index)
index
にある parent
の子を返します。parent
は、このデータソースからそれまでに取得されたノードである必要があります。index
が parent
の有効なインデックス (つまり、index >= 0 && index < getChildCount(parent
) である場合は、null
を返しません。parent
- このデータソースから取得された、ツリー内のノードindex
にある parent
の子int getChildCount(Object parent)
parent
の子の数を返します。ノードが葉の場合や、ノードが子を持たない場合は、0 を返します。parent
は、このデータソースからそれまでに取得されたノードである必要があります。parent
- このデータソースから取得された、ツリー内のノードparent
の子の数boolean isLeaf(Object node)
node
が葉の場合 true
を返します。node
が子を持たない場合でも、このメソッドは false
を返すことができます。たとえば、ファイルシステムのディレクトリにファイルが入っていない場合、そのディレクトリを表すノードは葉でないだけでなく、子も持っていません。node
- このデータソースから取得された、ツリー内のノードnode
が葉の場合は truevoid valueForPathChanged(TreePath path, Object newValue)
newValue
への path
によって識別される項目の値をユーザーが変更すると、メッセージとして送信されます。newValue
が本当に新しい値を意味する場合には、モデルは treeNodesChanged
イベントを送信しなければいけません。path
- ユーザーが変更したノードへのパスnewValue
- TreeCellEditor からの新しい値int getIndexOfChild(Object parent, Object child)
parent
または child
のどちらかが null
の場合は、-1 を返します。parent
または child
のどちらかがこのツリーモデルに属していない場合も、-1 を返します。parent
- このデータソースから取得された、ツリー内のノードchild
- 対象となるノードchild
または parent
が null
であるか、このツリーモデルに属していない場合は -1void addTreeModelListener(TreeModelListener l)
TreeModelEvent
のリスナーを追加します。l
- 追加するリスナーremoveTreeModelListener(javax.swing.event.TreeModelListener)
void removeTreeModelListener(TreeModelListener l)
addTreeModelListener
で追加されたリスナーを削除します。l
- 削除するリスナーaddTreeModelListener(javax.swing.event.TreeModelListener)
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.