TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
实现的文件树代码
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
import javax.swing.tree.*;
public class ExplorerTree extends JPanel {
private JTree tree;
private TreePath treePath;
public ExplorerTree() {
this.setLayout(new BorderLayout());
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Explorer");
tree = new JTree(root);
File[] roots = File.listRoots();
for (int i = 0; i < roots.length; i++) {
DefaultMutableTreeNode node = new DefaultMutableTreeNode(roots.getPath());
root.add(node);
}
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
try {
TreePath tp = tree.getPathForLocation(e.getX(), e.getY());
if (tp != null) {
treePath = tp;
int size = treePath.getPath().length;
StringBuffer pathname = new StringBuffer();
if (size > 0) {
for (int i = 1; i < size; i++) {
if (i > 2) {
pathname.append("\");
}
pathname.append(treePath.getPath().toString());
}
System.out.println(pathname.toString());
File file = new File(pathname.toString());
File[] list = file.listFiles();
for (int i = 0; i < list.length; i++) {
String[] strings = list.getPath().split("\\");
DefaultMutableTreeNode node = new DefaultMutableTreeNode(strings[strings.length - 1]);
((DefaultMutableTreeNode) tp.getLastPathComponent()).add(node);
}
}
}
} catch (Exception e1) {
System.out.println("can not open");
}
}
};
tree.addMouseListener(ml);
tree.setShowsRootHandles(true);
tree.setRootVisible(true);
JScrollPane scrPane = new JScrollPane(tree);
add(scrPane);
}
public static void main(String[] args) {
JFrame jFrame = new JFrame("Explorer");
jFrame.setLayout(new BorderLayout());
jFrame.add(new ExplorerTree());
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setSize(300, 700);
jFrame.setVisible(true);
}
}
源码下载:http://file.javaxxz.com/2014/10/29/235739140.zip |
|