Molto buttato giù, puoi fare una cosa del genere:
codice:
import javax.swing.*;
import javax.swing.tree.*;
public class TestFrame extends JFrame {
public TestFrame() {
super("Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
DefaultMutableTreeNode root = new DefaultMutableTreeNode("CD1");
String[] paths = { "MUSICA\\2005\\Gennaio", "MUSICA\\2005\\Febbraio", "MUSICA_NUOVA\\2009\\Gennaio" };
for (int i = 0; i < paths.length; i++) {
String[] parts = paths[i].split("\\\\");
DefaultMutableTreeNode node = root;
for (int j = 0; j < parts.length; j++) {
node = findOrAddNode(node, parts[j]);
}
}
DefaultTreeModel treeModel = new DefaultTreeModel(root);
JTree tree = new JTree(treeModel);
getContentPane().add(new JScrollPane(tree));
}
private static DefaultMutableTreeNode findOrAddNode(DefaultMutableTreeNode node, Object userObject) {
for (int i = 0; i < node.getChildCount(); i++) {
DefaultMutableTreeNode n = (DefaultMutableTreeNode) node.getChildAt(i);
if (n.getUserObject().equals(userObject)) {
return n;
}
}
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(userObject);
node.add(newNode);
return newNode;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new TestFrame().setVisible(true);
}
});
}
}