package adresare;
import javax.swing.*;
import javax.swing.tree.*;
import java.io.*;
public class Window extends javax.swing.JFrame {
DefaultTreeModel m;
MyNode root;
public Window() {
initComponents();
String s = "c:\\Program Files";
root = new MyNode (s);
root.path = s;
m = new DefaultTreeModel (root);
jTree1.setModel (m);
showDir (root, root.path, 2);
}
private void showDir (MyNode above, String path, int level)
{
// import java.io.*;
File dir = new File (path);
String [] list = dir.list ();
above.scanned = true;
// for (int i = 0; i < list.length; i++)
if (list != null)
for (String s : list)
{
MyNode node = new MyNode (s);
node.path = path + File.separator + s;
above.add(node);
if (level > 1)
{
File f = new File (node.path);
if (f.isDirectory())
showDir (node, node.path, level-1);
}
}
m.reload(above);
}
private void rescanDir (MyNode above, int level)
{
if (above.scanned)
{
if (level > 1)
{
int cnt = above.getChildCount();
for (int i = 0; i < cnt; i++)
{
TreeNode tn = above.getChildAt (i);
if (tn instanceof MyNode)
{
MyNode node = (MyNode) tn;
rescanDir (node, level-1);
}
}
}
}
else
{
showDir (above, above.path, level);
}
}
}
package adresare;
import javax.swing.*;
import javax.swing.tree.*;
public class MyNode extends DefaultMutableTreeNode {
public String path;
public boolean scanned = false;
public MyNode (String p)
{
super (p);
}
}