目次へ

13.4. javax.swing.event.TreeSelectionListener

「TreeSelectionListener」はツリーコンポーネントで選択されているノード(またはリーフ)が変化した場合に呼ばれるイベントリスナーです。「TreeSelectionEvent」オブジェクトを引数に取る「valueChanged」メソッドが唯一定義されているメソッドです。

「TreeSelectionEvent」で定義されているメソッドは基本的に選択されているノード(またはリーフ)のパスを返すメソッドです。また「LeadSelectionPath」という概念がありますが、これは最後に選択されたノード(またはリーフ)のパスを意味します。

(実習課題3)

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

  • ノード(またはリーフ)を選択したときに、選択されているノード(またはリーフ)を全てダイアログに表示する事。

解答例はこちら

13.5. javax.swing.tree.DefaultTreeModel

「DefaultTreeModel」は「JTree」が内部に持つ、標準の「TreeModel」です。「TreeModel」インタフェースを実装したクラスを作成して「JTree」クラスに設定する事もできますが、通常は「DefaultTreeModel」をそのまま使用します。

「DefaultTreeModel」クラスはリーフの追加および削除をするメソッドを提供します。「insertNodeInto」と「removeNodeFromParent」です。「insertNodeInto」は第1引数に追加するリーフ、第2引数にどの親のノードのところに追加するか、第3引数に何番目の子供として追加するか指定します。第3引数は親ノードに既に複数の子供がいる場合に意味がありますが、いない場合には「0」で良いでしょう。

「removeNodeFromParent」の引数は1つで、削除したいノードおよびリーフを指定します。中間ノードを指定した場合には、リーフも含めて全て削除されます。

(実習課題4)

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

  • 「追加」ボタンを追加し、現在選択されているノードにリーフを追加できるようにする事。リーフの文字はその都度、設定できるようにする事。またリーフにリーフは追加できないようにする事。
  • 「削除」ボタンを追加し、現在選択されているノード(またはリーフ)を削除できるようにする事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp