JTreeとはどんなもの?
データ構造を持ったコンポーネントとして、JList、JTableと紹介してきました。今回も、やはりデータを持つコンポーネントです。階層構造を持ったデータを扱うためのもので「JTree」と呼ばれるものです。
階層構造のデータ、というと「何に使うんだ?」と思うかもしれませんが、例えばWindowsのExplorerでのフォルダやファイルの表示を思い浮かべてみてください。フォルダを展開するとその中にファイル類が入っている――これも、階層構造です。こうした「ある項目の内部に更に別の項目が含まれている」というような構造のデータを扱うのに用いるのがJTreeなのですね。
では、さっそくJTreeを使った簡単なサンプルを作成してみることにしましょう。ここでは、いくつかの項目を表示したJTreeを組み込んで表示させてみます。
package jp.allabout.java;
import java.awt.*;
import javax.swing.*;
public class SampleApp extends JFrame{
private static final long serialVersionUID = 1L;
private JTree tree;
private JScrollPane pane;
public SampleApp(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] data = {"One","Two","Three"};
tree = new JTree(data);
pane = new JScrollPane(tree);
this.add(pane,BorderLayout.CENTER);
this.setSize(new Dimension(200,200));
}
public static void main(String[] args) {
new SampleApp().setVisible(true);
}
}
JTreeを組み込んだ状態。初期状態で、3つの項目を表示させてみた。 |
ここでは、3つの項目を表示したJTreeを作成しています。最初にString配列として表示する項目のデータを用意し、これを引数に指定して、JTreeインスタンスを作成しているのがわかりますね。このように、最初に配列として表示データを用意するのは、JTableなどと同じですね。
ということは……このやりかたでは、データを自由に扱えない、ということもおわかりでしょう。本格的にデータを利用するには、例によって「モデル」を用意する必要があるのです。