目次へ

13.3. javax.swing.event.TreeExpansionListenerとjavax.swing.TreePath

「TreeExpansionListener」は「TreeExpansionEvent」を処理するイベントリスナーで、このイベントはツリーのノードが展開されたとき、または収納されたときに発生するイベントです。「JTree」の「addTreeExpansionListener」によって設定します。「treeCollapsed」メソッドが収納したとき、「treeExpanded」が展開したときに対応します。「javax.swing.event.TreeWillExpandListener」というものもあり、こちらはノードが展開する前、または収納される前に発生するイベントを処理するリスナーです。

「TreeExpansionListner」のメソッドは「TreeExpansionEvent」を処理しますが、このイベントは「getPath」メソッドを持ちます。このメソッドの返り値は「TreePath」オブジェクトで、ツリーのパスを表すクラスです。「TreePath」クラスの重要なメソッドを幾つか下に示しておきます。

getLastPathComponent パスの一番最後(子供)のオブジェクトを返す
getParentPath パスから一番最後のオブジェクトを除いたパスを返す
getPath パスに含まれるオブジェクトの配列(ルートから)を返す
getPathCount パスに含まれるオブジェクトの数を返す
isDescendant 引数で指定されたパスが、自身が持つ要素を全て含む場合に「true」を返す
pathByAddingChild パスに引数で指定したオブジェクトを一番最後に追加したパスを返す。ただしツリーに子要素が追加されるわけではない。

(実習課題2)

実習課題1のプログラムを改良しなさい。

  • ノードの展開したときに、展開したノードのパスをダイアログに表示する事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp