There's already a JFileChooser component to do that... but if you really wanted to do it yourself you could always just modify DefaultTreeModel to use the listRoots() method of the File class and build a subclass of DefaultMutableTreeNode that wraps a File reference. I would also only read one level of the directory at a time. You could do this by using a TreeExpansionListner and use the listFiles() method to create the children of the directory that's expanding.
Write once, run anywhere, because there's nowhere to hide! - /. A.C.