モジュール java.desktop
パッケージ 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は、このデータ・ソースからそれまでに取得されたノードである必要があります。 indexparentの有効なインデックス(つまり、index >= 0 & index < getChildCount (parent)である場合は、nullを返しません。
      パラメータ:
      parent - このデータ・ソースから取得された、ツリー内のノード
      index - 返される子のインデックス
      戻り値:
      インデックス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)