ツリーでファイルをリストする
リソースマネージャと同様に、ディレクトリの下にあるファイルをツリーでリストします.
import java.io.File;
import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
public class ListFileTest {
public DefaultMutableTreeNode root;
public ListFileTest() {
root=new DefaultMutableTreeNode("root");
}
public DefaultMutableTreeNode lstFiles(File f,DefaultMutableTreeNode node) {
if (node == null) {
node = root;
lstFiles(f,node);
} else {
if (f.isDirectory()) {
String name=f.getName();
DefaultMutableTreeNode currentNode = new DefaultMutableTreeNode(name);
node.add(currentNode);
File[] files = f.listFiles();
if (files!=null) {
for (int i = 0; i < files.length; i++) {
lstFiles(files[i],currentNode);
}
}
} else {
DefaultMutableTreeNode currentNode = new DefaultMutableTreeNode(f
.getName());
node.add(currentNode);
}
}
return root;
}
public static void main(String[] args) {
File file = new File("F:\\");
ListFileTest t=new ListFileTest();
JFrame frame = new JFrame();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
DefaultMutableTreeNode nodes = t.lstFiles(file,null);
JTree tree = new JTree(nodes);
tree.setVisible(true);
frame.add(tree);
frame.setTitle("test");
frame.setSize(300, 400);
frame.setVisible(true);
}
}