2010-06-15 17 views
1

Je veux faire comme quand je clique sur un bouton, il va créer un nouveau fichier. Ensuite, le jTree mettra en évidence le nouveau fichier. Voici mon code. Actuellement, je crée un nouveau fichier, je vais montrer le nouveau fichier, mais pas mettre en évidence le fichier.JTree créer un nouveau fichier le faire sélectionner

class FileTreeModel implements TreeModel { 
private FileNode root; 

public FileTreeModel(String directory) { 
    root = new FileNode(directory); 
} 

public Object getRoot() { 
    return root; 
} 

public Object getChild(Object parent, int index) { 
    FileNode parentNode = (FileNode) parent; 
    return new FileNode(parentNode, parentNode.listFiles()[index].getName()); 
} 

public int getChildCount(Object parent) { 
    FileNode parentNode = (FileNode) parent; 
    if (parent == null || !parentNode.isDirectory() 
      || parentNode.listFiles() == null) { 
     return 0; 
    } 

    return parentNode.listFiles().length; 
} 

public boolean isLeaf(Object node) { 
    return (getChildCount(node) == 0); 
} 

public int getIndexOfChild(Object parent, Object child) { 
    FileNode parentNode = (FileNode) parent; 
    FileNode childNode = (FileNode) child; 

    return Arrays.asList(parentNode.list()).indexOf(childNode.getName()); 
} 

public void valueForPathChanged(TreePath path, Object newValue) { 

} 

public void addTreeModelListener(TreeModelListener l) { 
} 

public void removeTreeModelListener(TreeModelListener l) { 
} 

}

class FileNode extends java.io.File { 

public FileNode(String directory) { 
    super(directory); 
} 

public FileNode(FileNode parent, String child) { 
    super(parent, child); 
} 

@Override 
public String toString() { 
    return getName(); 

} 

}

 jTree = new JTree(); 
     jTree.setBounds(new Rectangle(164, 66, 180, 421)); 
     jTree.setBackground(SystemColor.inactiveCaptionBorder); 
     jTree.setBorder(BorderFactory.createTitledBorder(null, "", 
       TitledBorder.LEADING, TitledBorder.TOP, new Font("Arial", 
         Font.BOLD, 12), new Color(0, 0, 0))); 
     FileTreeModel model = new FileTreeModel(root); 
     jTree.setRootVisible(false); 
     jTree.setModel(model); 
     expandAll(jTree); 

public void expandAll(JTree tree) { 

    int row = 0; 
    while (row < tree.getRowCount()) { 
     tree.expandRow(row); 
     row++; 
    } 
    } 

Répondre