JavaTM 2 Platform
Standard Ed. 5.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[]) を参照してください。

パラメータ:
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 の配列。配列の最初の要素はルートノードに格納されている Object、最後の要素は変更されたノードに格納されている 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 はルートに格納されている Object、最後のオブジェクトはパスによって指定されるノードに格納されている Object

getChildren

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

戻り値:
イベントによって指定される子を格納する Object の配列
関連項目:
getPath(), getChildIndices()

getChildIndices

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

戻り値:
イベントによって指定される子のインデックス位置を格納する int の配列

toString

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

オーバーライド:
クラス EventObject 内の toString
戻り値:
このオブジェクトの文字列表現

JavaTM 2 Platform
Standard Ed. 5.0

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

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