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番目のコンストラクタを確認してみます。

public DefaultTreeModel(TreeNode root)

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

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

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

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

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

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。