62,622
社区成员
发帖
与我相关
我的任务
分享
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
public class N110819 {
public static void main(String[] args) {
// 构造函数:JTree()
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode( " 我的电脑 " , true);
JTree example1 = new JTree(node1);
JPanel panel = new JPanel();
List<String> root = getRoot();
for(String s : root){
node1.add(new DefaultMutableTreeNode(s, true));
}
panel.setSize(350, 350);
panel.add(example1);
//panel.add ( new JScrollPane (example1);
JFrame frame = new JFrame ( " JTreeDemo " );
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setSize(400,400);
frame.setContentPane (panel);
frame.setVisible(true);
}
static List<String> getRoot(){
File[] root = File.listRoots();
List<String> rootNames = new ArrayList<String>();
for(File f : root){
rootNames.add(f.toString());
}
return rootNames;
}
}
package com.xcy.test;
import java.io.File;
import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.filechooser.FileSystemView;
import javax.swing.tree.DefaultMutableTreeNode;
public class JTreeTest extends JFrame {
public JTreeTest() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("我的电脑");
FileSystemView sys = FileSystemView.getFileSystemView();
File[] files = File.listRoots();
for (int i = 0; i < files.length; i++) {//测试的时候最好是把这行代码换成 for (int i = 1; i < 2; i++) { i=1在我机子上 是指定D盘
DefaultMutableTreeNode temp = new DefaultMutableTreeNode(sys.getSystemDisplayName(files[i]));
root.add(temp);
bind(temp,files[i].toString());//测试的时候最好是把这行代码换成 bind(temp,"D:\xxx\xxx");指定一个文件夹,否则遍历整个文件系统会非常慢
}
JTree jtree = new JTree(root);
this.add(jtree);
this.setSize(500, 500);
this.setVisible(true);
}
public void bind(DefaultMutableTreeNode node,String path){
File file = new File(path);
File[] files = file.listFiles();
for(int i=0;files!=null && i<files.length;i++){
File tempFile = files[i];
if(tempFile.isDirectory()){
DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(tempFile.getName());
node.add(tempNode);
bind(tempNode,tempFile.getAbsolutePath());
}else{
DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(tempFile.getName());
node.add(tempNode);
}
}
}
public static void main(String[] args) {
new JTreeTest();
}
}