JTree クラス
- [内容]
- ツリー(木)状にデータを表示するためのクラスです
- [コンストラクタ]
- public JTree(TreeNode root)
- ルートノード root を持つ JTree オブジェクトを生成する
- public JTree(TreeModel newModel)
- データモデル newModel に従って,JTree オブジェクトを生成する
- [主なメソッド]
- public Object getLastSelectedPathComponent()
- 選択された最初のノードの TreePath にある最後の Object を返す
- public void makeVisible(TreePath path)
- パスによって識別されるノードが表示可能であるようにする.なお,TreePath は,与えられたノードからルートへのパスを生成するためのクラスである.
- public void paint(Graphics g) ( JComponent から継承)
- コンポーネントを描画
- public void paintAll(Graphics g) ( Component から継承)
- このコンポーネントおよびそのすべてのサブコンポーネントを描画
- public void paintComponent(Graphics g) ( JComponent から継承)
- コンポーネントを描画
- public void paintComponents(Graphics g) ( Container から継承)
- コンテナ内の各コンポーネントを描画
- public final void putClientProperty(Object key, Object value) ( JComponent から継承)
- 任意のキーと値を組み合わせたクライアントプロパティをこのコンポーネントに追加する
- public void repaint() ( Component から継承)
- public void repaint(int x, int y, int width, int height) ( Component から継承)
- public void repaint(long tm) ( Component から継承)
- public void repaint(Rectangle r) ( JComponent から継承)
- public void repaint(long tm, int x, int y, int width, int height) ( JComponent から継承)
- 指定された矩形領域を,tm ミリ秒以内に再描画する
- public void scrollPathToVisible(TreePath path)
- パスにあるすべてのパスコンポーネント(最後のパスコンポーネントは除く)を展開し,パスによって指定されるノードが表示されるようにスクロールする.この JTree が JScrollPane に格納されている場合だけ機能する.
- public void setEditable(boolean flag)
- 編集可能か否かを設定する
- [使用例]
- プログラム例は,JTree クラスの各メソッド等の使用例です.DefaultMutableTreeNode クラスを利用して木構造データを生成しておき,そのルートノードを引数として渡し,JTree オブジェクトを生成しています.簡単な方法ですが,ノードを追加,削除したいようなときには向きません.DefaultMutableTreeNode クラスの主なメソッドは以下の通りです.
- public DefaultMutableTreeNode(Object userObject) (コンストラクタ)
- DefaultMutableTreeNode オブジェクトを生成する
- public int getChildCount()
- 子ノードの数を返す
- public int getIndex(TreeNode aChild)
- 指定された子のインデックスを返す
- public TreeNode getParent()
- 親ノードを返す

- プログラム例では,上と全く同じものを,DefaultTreeModel クラスを利用して作成しています.DefaultTreeModel クラスのメソッドを利用して,ノードの追加削除を簡単に行うことができます.DefaultTreeModel クラスの主なメソッドは以下の通りです.
- public void insertNodeInto(MutableTreeNode newChild, MutableTreeNode parent, int index)
- 子の位置インデックスに newChild を挿入する.それから,nodesWereInserted をメッセージとして送り,適切なイベントを生成するので,子を追加するための望ましい方法である.
- public void removeNodeFromParent(MutableTreeNode node)
- ノードをその親から削除する.それから,nodesWereRemoved をメッセージとして送り,適切なイベントを生成するので,ノードを削除するための望ましい方法である.

- [参照]
- JTable