DefaultTreeModelクラスの定義とコンストラクタ

広告

JTreeクラスでデータ管理を行っているのがTreeModelインターフェースを実装したクラスとなります。本来データ管理はTreeModelを利用するのですがJTreeにおいてはTreeNodeやTreePathなどを使っても管理が出来るようになっているため必ずしもTreeModelを使わなければならないわけではありません。

実際に利用するにはTreeModelインターフェースの実装クラスであるDefaultTreeModelクラスが用意されています。ここからはDefaultTreeModelクラスを利用する方法を確認していきます。

DefaultTreeModelクラスの定義を確認します。クラス図は次のようになっています。

java.lang.Object
  javax.swing.tree.DefaultTreeModel

public class DefaultTreeModel
extends Object
implements Serializable, TreeModel

DefaultTreeModelクラスはTreeModelインターフェースを実装したクラスです。

DefaultTreeModelクラスのコンストラクタ

DefaultTreeModelクラスをを利用するにはコンストラクタを使ってDefaultTreeModelクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。

コンストラクタ
DefaultTreeModel(TreeNode root)
どのノードでも子を持てるツリーを作成します。
DefaultTreeModel(TreeNode root, boolean asksAllowsChildren)
どのノードでも子を持てるかどうか、特定のノードだけが子を持てるかどうかを指定するツリーを作成します。

コンストラクタは2つ用意されています。ツリーに含まれるノードが子ノードを持てるかどうかを指定するかどうかで使い分けます。

では1番目のコンストラクタを確認してみます。

どのノードでも子を持てるツリーを作成します。

パラメータ:
  root - ツリーのルートである TreeNode オブジェクト

引数にルートノードを表すのデータを表すDefaultMutableTreeNodeクラスのオブジェクトを指定します。

実際の使い方は次のようになります。

DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("root");
DefaultTreeModel model = new DefaultTreeModel(rootNode);

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。