appendix> swing> JTree TOPUPPREVNEXT

javax.swing.JTree

【主な機能】

木構造(ディレクトリ形式)のビューを提供します。

ここでは、 DefaultMutableTreeNode を拡張する例(【例1】【例2】)と、 TreeNode インターフェースを実装したモデルを使用する例(【例3】) を紹介します。

【継承】

    java.lang.Object
          ├ java.awt.Component
          │    └ java.awt.Container
          │          └ javax.swing.JComponent
          │                 └ javax.swing.JTree
          └ java.swing.tree.DefalutMutableTreeNode

【関連するインターフェース】

    javax.swing.tree.TreeNode
          └ javax.swing.tree.MutableTreeNode

【主なコンストラクタ】

コンストラクタ機能
JTree ( TreeNode root )

【よく使われるメソッド】

【例1】

ファイルチューザで選択したディレクトリに含まれるファイルを JTree で表示します。
ファイルチューザにはディレクトリだけが表示されます。 シングルクリックで選択し「開く」ボタンで選択を確定します。 ダブルクリックするとそのディレクトリの中が表示されます。
表示された JTree 上ではディレクトリとファイルの両方が表示されます。 ディレクトリをダブルクリックすると中身の表示/非表示がトグルで切り替わります。 ディレクトリの左に表示されている(ノブのような)アイコンをクリックしても切り替えられます。

プログラム JTreeDemo1.java

実行例

ファイルチューザで java をインストールしたディレクトリを選択した例です。

JTreeDemo1-1.gif

【例2】

例1と同様、ファイルチューザで選択したディレクトリに含まれるファイルを JTree で表示します。 UIManager を使って Windows 風の Look&Feel にしてみましょう。
8行目に import を追加し 、 14から19行目で LookAndFeel の設定をしています。(J2SE 1.4 で実行)

プログラム JTreeDemo2.java

実行例

ファイルチューザで java 1.4.2_08 をインストールしたディレクトリを選択した例です(下図左)。

JTreeDemo2-1.gif   JTreeDemo2-2.gif

plus.gifをクリックするか、 ディレクトリの名前をダブルクリックすると、ディレクトリが展開されます(上図右)。

【例3】

TreeNode インターフェースを実装したモデルの例です。 ファイルのディレクトリ情報の処理は FILE に委譲します。
TreeNode インターフェースには次の7つのメソッドの実装が必要です。

メソッド機能
Enumeration children ( ) このノードの子を順に獲得する Enumeration
boolean getAllowsChildren ( ) このノードに子がある場合 true
TreeNode getChildAt ( int childIndex ) このノードの childIndex 番目の子
int getChildCount ( ) このノードの子の個数
int getIndex ( TreeNode node ) このノードに node と等しい子があればそのインデックス。 ない場合は、-1
TreeNode getParent ( ) このノードの親
boolean isLeaf ( ) このノードが葉の場合 true

プログラム JTreeDemo3.java

実行結果は、例1と同じです。

【例4】

簡単な例

プログラム JTreeDemo5.java

実行結果
JTreeDemo5-1.gif


更新日:2006-04-11