我想创建一个带有jcheckbox选择的Drive explorer,它将使用JTree显示计算机的所有驱动器,文件夹和文件,就像Windows文件浏览器一样:
我做了很多:
public class NewJFrame extends javax.swing.JFrame {
DefaultMutableTreeNode nodes;
public NewJFrame() {
nodes = new DefaultMutableTreeNode("Root", true);
addRoots(nodes);
initComponents();
jTree1.setRootVisible(false);
}
public void addRoots(DefaultMutableTreeNode parent){
File roots[] = File.listRoots();
for(File root: roots){
DefaultMutableTreeNode child = new DefaultMutableTreeNode(root);
child.add(new DefaultMutableTreeNode("test"));
parent.add(child);
}
}
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTree1 = new javax.swing.JTree(nodes);
//.......
//.......
}
}
答案 0 :(得分:0)
要解决您的问题(动态添加节点 - >在评论中描述),您可以使用虚拟节点和TreeListener之类的东西来实现。 虚拟节点(在本例中)用于伪造现有子节点 在TreeNodeExpand-Event中,您可以检查展开的节点是否只有一个虚拟子节点,然后您可以即时创建REAL子节点。
这意味着,对于您获得的每个文件夹,您将创建一个新节点,其中directlcy包含DUMMY子节点(伪造现有子节点)。 然后,展开时,删除虚拟节点并添加REAL节点。 (与您为当前目录获得的所有文件夹相同)