Rabu, 09 Februari 2011

Membuat File Directory menggunakan JTree

Component JTree biasa digunakan untuk menampilkan sebuah hierarki data seperti yang sering kali kita lihat ketika kita membuka windows explorer pada bagian sebelah kiri. Kali ini saya akan membuat sebuah tampilan file directory dengan menggunakan JTree.

Berikut langkah-langkahnya:

1. Buat sebuah class turunan dari Vector misal saya beri nama NamedVector. Class ini nantinya akan digunakan untuk menampilkan nama dari node pada JTree, sehingga kita harus meng-override method toString() miliknya.


import java.util.Vector;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author hauw
*/
public class NamedVector extends Vector{

private String nama;

public NamedVector(String nama) {
this.nama = nama;
}

@Override
public synchronized String toString() {
return nama;
}

}



2. Buat sebuah JFrame untuk menampilkan JTree, disini saya menggunakan netbeans. Contoh tampilannya seperti di bawah ini.



3. Masuk ke bagian source code dari form, lalu tambahkan beberapa baris.


private DefaultMutableTreeNode rootNode;
private DefaultTreeModel treeModel;

/** Creates new form Form */
public Form() {
initComponents();

File file = new File("D:/Kuliah");
rootNode = new DefaultMutableTreeNode(file.getAbsolutePath());
treeModel = new DefaultTreeModel(rootNode);
jTree1.setModel(treeModel);
JTree.DynamicUtilTreeNode.createChildren(rootNode, getFileDirectory(file));
}

private static NamedVector getFileDirectory(File directory) {
NamedVector vectorDirectory = new NamedVector(directory.getName());

File[] files = directory.listFiles();

for (File file : files) {
if(file.isDirectory()) {
NamedVector vector = getFileDirectory(file);
vectorDirectory.add(vector);
} else {
vectorDirectory.add(file.getName());
}
}

return vectorDirectory;
}


Di atas saya mengakses folder D:/kuliah pada pc saya. Kalau nanti kalian coba ganti aja pada bagian "File file = new File("");" menjadi folder yang ingin kalian explore. Contoh tampilannya seperti ini



project lengkapnya bisa download disini

FileDirectory.rar