モジュール java.desktop
パッケージ javax.swing.event

クラスTreeModelEvent

  • すべての実装されたインタフェース:
    Serializable


    public class TreeModelEvent
    extends EventObject
    ツリー・モデルの変更を記述する情報をカプセル化して、ツリー・モデル・リスナーに変更を通知します。 詳細および例は、「The Java Tutorial」の「How to Write a Tree Model Listener」セクションを参照してください。

    警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースとの互換性がなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。

    関連項目:
    直列化された形式
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      protected int[] childIndices
      子があった位置を指定するインデックスです。
      protected Object[] children
      削除された子です。
      protected TreePath path
      変更されたノードの親へのパスです。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      TreeModelEvent​(Object source, Object[] path)
      ノード構造がなんらかの方法で変更されたときに、イベントを生成するために使用します。変更されたサブツリーのルートへのパスをObjectの配列として指定します。
      TreeModelEvent​(Object source, Object[] path, int[] childIndices, Object[] children)
      ノードが変更、挿入、または削除されたときに、イベントを生成するために使用します。変更された項目の親へのパスをObjectの配列として指定します。
      TreeModelEvent​(Object source, TreePath path)
      ノード構造がなんらかの方法で変更されたときに、イベントを生成するために使用します。変更されたサブツリーのルートへのパスをTreePathオブジェクトとして指定します。
      TreeModelEvent​(Object source, TreePath path, int[] childIndices, Object[] children)
      ノードが変更、挿入、または削除されたときに、イベントを生成するために使用します。変更された項目の親へのパスをTreePathオブジェクトとして指定します。
    • フィールドの詳細

      • path

        protected TreePath path
        変更されたノードの親へのパスです。
      • childIndices

        protected int[] childIndices
        子があった位置を指定するインデックスです。
      • children

        protected Object[] children
        削除された子です。
    • コンストラクタの詳細

      • TreeModelEvent

        public TreeModelEvent​(Object source,
                              Object[] path,
                              int[] childIndices,
                              Object[] children)
        ノードが変更、挿入、または削除されたときに、イベントを生成するために使用します。変更された項目の親へのパスをObjectの配列として指定します。 変更されたオブジェクトはすべて、指定した親の直接の子(孫ではなく)である兄弟オブジェクトです。 挿入、削除または変更が行われた位置は、intの配列によって指定されます。 その配列内のインデックスは、最下位から最上位への順番である必要があります。

        変更の場合、モデルのインデックスは、現在UIで表示されている項目のインデックスに正確に対応します。 その結果、インデックスの順番が正しいかどうかはあまり重要にはなりません。 しかし、複数の挿入または削除のあとでは、現在UIにある項目はモデル内の項目と対応していません。 したがって、挿入または削除ではインデックスを適切に指定することが重要となります。

        挿入の場合、インデックスは、挿入後のツリーの最終状態を表します。 インデックスは適切な順序で指定する必要があるため、もっとも自然な処理方法は、最下位のインデックスから最上位に向かって挿入を行うという方法です。 処理を進めながら、挿入位置を指定するIntegerオブジェクトのVectorを増加させてから、Vectorをintの配列に変換して、イベントを生成します。 位置インデックスが0であれば、ノードはリストの先頭に挿入されます。 位置インデックスがリストのサイズと同じであれば、ノードはリストの最後に「挿入」つまり追加されます。

        削除の場合、インデックスは、削除前のツリーの初期状態を表します。 インデックスは適切な順序で指定する必要があるため、もっとも自然な処理方法は、削除カウンタを使用する方法です。 カウンタを0に初期化してから、リストの最下位から最上位に向かって処理を行います。 削除を行うたびに、削除カウンタの現在値を、削除が行われるインデックス位置に追加し、addElement()を使ってその結果を削除位置のVectorに追加します。 そのあとで、削除カウンタ値を増加します。 これで、Vectorに格納されるインデックス位置には以前のすべての削除の結果が反映されるので、それらは初期状態のツリーでの各オブジェクトの位置を表します。 最上位インデックスから最下位インデックスに向かって処理を行い、insertElementAt(Integer, 0)を使って、処理を進めながら削除位置のVectorを増加させることもできます。 どのように初期位置のVectorを生成した場合でも、イベント生成のためにIntegerオブジェクトのVectorをintの配列へ変換する必要があります。

        注:

        • DefaultTreeModelクラスのinsertNodeIntoメソッドと同様に、insertElementAtは、インデックスがベクターのサイズに一致したときにVectorへの追加を行います。 したがって、insertElementAt(Integer, 0)は、Vectorが空のときでも使用できます。
        • ルート・ノードのノード変更イベントを生成するには、親と、子のインデックスをnullとして指定します。
        パラメータ:
        source - イベントの生成のためのObject (通常、イベント・オブジェクトの生成側は値にthisを渡す)
        path - 変更された項目の親へのパスを示すObjectの配列。配列の最初の要素はルート・ノードに格納されているObject、最後の要素は親ノードに格納されているObject
        childIndices - 削除された項目のインデックス値を指定するint配列。 インデックスは、最下位から最上位へ向かってソートされた順序である必要がある
        children - 挿入、削除、または変更されたオブジェクトを格納するObjectの配列
        関連項目:
        TreePath
      • TreeModelEvent

        public TreeModelEvent​(Object source,
                              TreePath path,
                              int[] childIndices,
                              Object[] children)
        ノードが変更、挿入、または削除されたときに、イベントを生成するために使用します。変更された項目の親へのパスをTreePathオブジェクトとして指定します。 インデックスおよびオブジェクトの指定方法については、TreeModelEvent(Object,Object[],int[],Object[])を参照してください。
        パラメータ:
        source - イベントの生成のためのObject (通常、イベント・オブジェクトの生成側は値にthisを渡す)
        path - 変更された項目の親へのパスを指定するTreePathオブジェクト
        childIndices - 変更された項目のインデックス値を指定するint配列
        children - 挿入、削除、または変更されたオブジェクトを格納するObjectの配列
        関連項目:
        TreeModelEvent(Object,Object[],int[],Object[])
      • TreeModelEvent

        public TreeModelEvent​(Object source,
                              Object[] path)
        ノード構造がなんらかの方法で変更されたときに、イベントを生成するために使用します。変更されたサブツリーのルートへのパスをObjectの配列として指定します。 構造変更イベントは、たとえば、ノード交換位置を含む場合や、そのノードから始まるサブツリーでの複数の挿入および削除をカプセル化する場合があります。その場合は、サブツリーの様々なレベルで変更が起こる可能性があります。
        注:
        JTreeは、指定したノードの下のすべてのノードを収納するので、直接の子だけが可視になります。
        パラメータ:
        source - イベントの生成のためのObject (通常、イベント・オブジェクトの生成側は値にthisを渡す)
        path - 変更されたサブツリーのルートへのパスを示すObjectの配列。配列の最初の要素はルート・ノードに格納されているオブジェクト、最後の要素は変更されたノードに格納されているオブジェクト
        関連項目:
        TreePath
      • TreeModelEvent

        public TreeModelEvent​(Object source,
                              TreePath path)
        ノード構造がなんらかの方法で変更されたときに、イベントを生成するために使用します。変更されたサブツリーのルートへのパスをTreePathオブジェクトとして指定します。 このイベントの仕様の詳細は、TreeModelEvent(Object,Object[])を参照してください。
        パラメータ:
        source - イベントの生成のためのObject (通常、イベント・オブジェクトの生成側は値にthisを渡す)
        path - 変更点へのパスを示すTreePathオブジェクト。 DefaultTreeModelでは、このオブジェクトにはユーザー・データ・オブジェクトの配列が格納される。ただし、TreePathのサブクラスはまったく異なったメカニズム(たとえばノードID番号)を使用することも可能
        関連項目:
        TreeModelEvent(Object,Object[])
    • メソッドの詳細

      • getTreePath

        public TreePath getTreePath​()
        treeStructureChangedを除くすべてのイベントに対して、変更されたノードの親を返します。 treeStructureChangedイベントに対しては、変更された構造の祖先を返します。 これとgetChildIndicesを使用して影響を受けたノードのリストを取得します。

        唯一の例外は、ルートを指定するtreeNodesChangedイベントの場合です。この場合はルートが返され、getChildIndicesはnullを返します。

        戻り値:
        変更されたノードを指定するTreePathオブジェクト。
        関連項目:
        TreePath.getLastPathComponent()
      • getPath

        public Object[] getPath​()
        このイベントがラップするTreePathのインスタンスから、オブジェクトの配列を取得するための簡易メソッドです。
        戻り値:
        Objectの配列。最初のObjectはルートに格納されていて、最後のオブジェクトはパスで示されるノードに格納されている
      • getChildren

        public Object[] getChildren​()
        getChildIndicesで指定された位置にある、getPathで示されるノードの子のオブジェクトを返します。 これが削除イベントである場合、返されるオブジェクトはその親ノードの子ではありません。
        戻り値:
        イベントによって指定される子を格納するObjectの配列
        関連項目:
        getPath(), getChildIndices()
      • getChildIndices

        public int[] getChildIndices​()
        子インデックスの値を返します。 これが削除イベントである場合、インデックスは項目が削除された初期リストでの位置を指します。 挿入の場合は、インデックスは項目が追加された最終リストでの位置を指します。 ノード変更の場合は、インデックスは変更されたノードの位置を指します。
        戻り値:
        イベントによって指定された子のインデックス位置を格納するint配列
      • toString

        public String toString​()
        このオブジェクトのプロパティを表示および識別する文字列を返します。
        オーバーライド:
        toString、クラス: EventObject
        戻り値:
        このオブジェクトの文字列表現