JavaTM 2
Platform
Std. Ed. v1.4.0

javax.swing.event
クラス TreeModelEvent

java.lang.Object
  |
  +--java.util.EventObject
        |
        +--javax.swing.event.TreeModelEvent
すべての実装インタフェース:
Serializable

public class TreeModelEvent
extends EventObject

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

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


フィールドの概要
protected  int[] childIndices
          子があった位置を指定するインデックスです。
protected  Object[] children
          削除された子です。
protected  TreePath path
          変更されたノードの親へのパスです。
 
クラス java.util.EventObject から継承したフィールド
source
 
コンストラクタの概要
TreeModelEvent(Object source, Object[] path)
          ノード構造がなんらかの方法で変更されたときに、イベントを生成するために使用します。
TreeModelEvent(Object source, Object[] path, int[] childIndices, Object[] children)
          ノードが変更、挿入、または削除されたときに、イベントを生成するために使用します。
TreeModelEvent(Object source, TreePath path)
          ノード構造がなんらかの方法で変更されたときに、イベントを生成するために使用します。
TreeModelEvent(Object source, TreePath path, int[] childIndices, Object[] children)
          ノードが変更、挿入、または削除されたときに、イベントを生成するために使用します。
 
メソッドの概要
 int[] getChildIndices()
          子インデックスの値を返します。
 Object[] getChildren()
          getChildIndices によって指定された位置で getPath によって識別されたノードの子のオブジェクトを返します。
 Object[] getPath()
          このイベントがラップする TreePath のインスタンスから、オブジェクトの配列を取得するための簡易メソッドです。
 TreePath getTreePath()
          treeStructureChanged を除くすべてのイベントに対して、変更されたノードの親を返します。
 String toString()
          このオブジェクトのプロパティを表示および識別する文字列を返します。
 
クラス java.util.EventObject から継承したメソッド
getSource
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

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 の配列へ変換する必要があります。

注意:


TreeModelEvent

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

関連項目:
TreeModelEvent(Object,Object[],int[],Object[])

TreeModelEvent

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

関連項目:
TreePath

TreeModelEvent

public TreeModelEvent(Object source,
                      TreePath path)
ノード構造がなんらかの方法で変更されたときに、イベントを生成するために使用します。変更されたサブツリーのルートへのパスを TreePath オブジェクトとして指定します。このイベントの仕様の詳細は、?TreeModelEvent(Object,Object[]) を参照してください。 イベントの生成を処理する Object。通常、イベントオブジェクトの生成側は値に this を渡す 変更点へのパスを指定する 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 はルートに格納されている Object、最後のオブジェクトはパスによって指定されるノードに格納されている Object


getChildren

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

関連項目:
getPath(), getChildIndices()

getChildIndices

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


toString

public String toString()
このオブジェクトのプロパティを表示および識別する文字列を返します。 このオブジェクトの文字列表現

オーバーライド:
クラス EventObject 内の toString
戻り値:
この EventObject の String 表現

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.