Hi Leute,
ich bin langsam am verzweifeln. Ich habe euch mal den Code rauskopiert, mit dem ich Probleme habe.
Ich versuche mir einen Baum anzulegen, der 10 Knoten haben die Kind 0, Kind 1 ... Kind n heißen.
Anschließend möchte ich Kind 1, 5 Knoten hinzufügen (mit dem Namen "Noch ein Kind 1" , "Noch ein Kind 2 usw.). Wenn ich nun den Baum expandieren will, besitzt Kind 1 keine Kinder... und ich weiß nicht wieso. Ich hoffe das mir jemand weiterhelfen kann. Ach ja das ding hat keine GUI sondern muss debuggt werden
Danke für eure Hilfe
ich bin langsam am verzweifeln. Ich habe euch mal den Code rauskopiert, mit dem ich Probleme habe.
Ich versuche mir einen Baum anzulegen, der 10 Knoten haben die Kind 0, Kind 1 ... Kind n heißen.
Anschließend möchte ich Kind 1, 5 Knoten hinzufügen (mit dem Namen "Noch ein Kind 1" , "Noch ein Kind 2 usw.). Wenn ich nun den Baum expandieren will, besitzt Kind 1 keine Kinder... und ich weiß nicht wieso. Ich hoffe das mir jemand weiterhelfen kann. Ach ja das ding hat keine GUI sondern muss debuggt werden
Java:
public class Probs {
static DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
static DefaultTreeModel model = new DefaultTreeModel(root);
static JTree tree = new JTree(model);
public static void expandAll(boolean expand){
TreeNode n = (TreeNode)tree.getModel().getRoot();
expandAll(new TreePath(n), expand);
}
private static void expandAll(TreePath parent, boolean expand){
TreeNode node = (TreeNode)parent.getLastPathComponent();
int count = node.getChildCount();
if(count >=0){
for(Enumeration e = node.children(); e.hasMoreElements(); ){
TreeNode n = (TreeNode)e.nextElement();
TreePath path = parent.pathByAddingChild(n);
System.out.println("KIND "+ n.toString());
expandAll(path, expand);
}
}
if(expand){
tree.expandPath(parent);
}
else{
tree.collapsePath(parent);
}
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
for(int i =0; i < 10; i++){
DefaultMutableTreeNode node = new DefaultMutableTreeNode("Kind " + i);
model.insertNodeInto(node, root, root.getChildCount());
}
Object[] objects = new Object[2];
DefaultMutableTreeNode kind =new DefaultMutableTreeNode("Kind 1");
objects[0] = new DefaultMutableTreeNode(tree.getModel().getRoot());
kind.setParent(root);
objects[1] = kind;
TreePath treepath = new TreePath(objects);
for(int i = 0; i < 5; i++){
DefaultMutableTreeNode child = new DefaultMutableTreeNode("Noch ein kind"+i);
//node2 = (DefaultMutableTreeNode) tp.getLastPathComponent();
DefaultMutableTreeNode node2 = (DefaultMutableTreeNode) treepath.getLastPathComponent();
model.insertNodeInto(child, node2, node2.getChildCount());
int counter =node2.getChildCount();
System.out.println("ss");
for(int p = 0; p < counter; p ++){
System.out.println("Kindname: " + node2.getChildAt(p).toString());
}
TreeNode[] path = model.getPathToRoot(node2);
tree.expandPath(new TreePath(path));
}
expandAll(true);
}
}