Javaプログラミング/Javaプログラミング関連情報

JTreeでツリー表示を作ろう!(3ページ目)

今回は、階層的にデータを表示する「JTree」の基本について説明します。

執筆者:掌田 津耶乃

DefaultMutableTreeNodeの組み込み


サンプルでは、実際にDefaultMutableTreeNodeを使っていくつかの項目(ノードと呼ばれます)を作成し、組み込んだところです。ここでは、ノードを作成している部分をgetRootNodeというメソッドに切り分けてあります。このメソッドを見てみましょう。

private MutableTreeNode getRootNode(){
  DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");
  DefaultMutableTreeNode sub_a = new DefaultMutableTreeNode("Sub Node-A");
  root.add(sub_a);
  DefaultMutableTreeNode sub_b = new DefaultMutableTreeNode("Sub Node-B");
  root.add(sub_b);
  sub_a.add(new DefaultMutableTreeNode("Sub Node-A-1"));
  sub_a.add(new DefaultMutableTreeNode("Sub Node-A-2"));
  sub_b.add(new DefaultMutableTreeNode("Sub Node-B-1"));
  sub_b.add(new DefaultMutableTreeNode("Sub Node-B-2"));
  return root;
}


DefaultMutableTreeNodeは、一番土台となる部分(ルートと呼びます)のノードが1つあり、この下にノードを追加していく、という形でデータ全体を構築していきます。従って、まず、ルートのノードを作成します。

new DefaultMutableTreeNodeでは、表示する値を引数に指定してインスタンス作成をします。作成後、そのノードを組み込むノードのaddメソッドを呼び出して組み込みます。このaddは、そのノードの下にノードを組み込むためのものです。例えば、add( A )、add( B )というように実行すると、実際の表示画面ではそのノードの中に、「A」「B」の順に組み込んだノードが表示されます。

[DefaultMutableTreeNode].add([DefaultMutableTreeNode]);


このように、DefaultMutableTreeNodeを引数に指定すると、自身の下にこのノードを付け足すわけですね。

よく勘違いをしてしまうのですが、このノードの組み込みは、「自身の下にノードを取り付ける」ということしかできません。例えば、あるノード内に「A」「B」とノードが並んでいて、この下に「C」というノードを表示させよう、という場合、「B」のノードに「同じ位置にノードを組み込む」ようなメソッドを探しても、そんなものはないのです。これは、その「A」「B」といったノードが組み込まれている親のノードに対して、新たに「C」ノードをaddすることでできます。あくまで「親ノードに子ノードを組み込む」という形でしかノードの組み込みは行えない、という点を忘れないでください。

DefaultMutableTreeNodeには、addの他に、任意の位置に組み込むinsertや、ノードを取り外すremoveといったものも用意されています。

[DefaultMutableTreeNode].insert([DefaultMutableTreeNode],[index番号]);

[DefaultMutableTreeNode].remove([index番号]);
[DefaultMutableTreeNode].remove([DefaultMutableTreeNode]);


insertは、既にいくつかのノードが組み込まれているときにその途中に新しいノードを割り込ませたいときに用います。またremoveは、あくまで「組み込み状態」に関するものであり、そのノード自体を削除するわけではありません。ノード自体はremove後もインスタンスが存在する限りちゃんと残っています。


  • 前のページへ
  • 1
  • 2
  • 3
  • 4
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます