Ich habe einen JTree. Ich will für jeden Node (DefaultMutableTreeNode) eigene Eigenschaften in einem HashMap hinterlegen, z.B. Id, Icon, Infotexte etc.
Die Nodes im JTree können per Drag n Drop verschoben werden, somit ändert sich zumindest ihre Position und u.U. ihr Treepath.
Wie kann ich das HashMap mit einem eindeutigen Key des Node auslesen, um die im HashMap hinterlegten Eigenschaften heranzukommen, wenn dieser Node per DnD verschoben wurde? Kann ich jedem Node zur Laufzeit ein eindeutiges Kennzeichen hinterlegen?
So funktioniert das nicht. familienmitglied ist null.
HashMap<DefaultMutableTreeNode,HashMap<String,String>> familie=new HashMap<DefaultMutableTreeNode,HashMap<String,String>>();
HashMap<String,String> familienmitglied=new HashMap<String,String>();
...
DefaultMutableTreeNode vater=new DefaultMutableTreeNode("Karl");
familienmitglied.put("geschlecht", "männlich");
familienmitglied.put("alter", "45");
familienmitglied.put("hobby", "briefmarken");
familie.put(vater, familienmitglied);
DefaultMutableTreeNode mutter=new DefaultMutableTreeNode("Susanne");
familienmitglied.put("geschlecht", "weiblich");
familienmitglied.put("alter", "44");
familienmitglied.put("hobby", "jogging");
familie.put(mutter, familienmitglied);
DefaultMutableTreeNode sohn=new DefaultMutableTreeNode("Peter");
familienmitglied.put("geschlecht", "männlich");
familienmitglied.put("alter", "15");
familienmitglied.put("hobby", "handball");
familie.put(sohn, familienmitglied);
...
public void runThisTree(TreeModel model, Object node){
for(int i=0;i<model.getChildCount(node);i++){
Object child = model.getChild(node,i);
HashMap<String,String> familienmitglied=familie.get(child);
//familienmitglied ist null
runThisTree(model,child);
}
}
Die Nodes im JTree können per Drag n Drop verschoben werden, somit ändert sich zumindest ihre Position und u.U. ihr Treepath.
Wie kann ich das HashMap mit einem eindeutigen Key des Node auslesen, um die im HashMap hinterlegten Eigenschaften heranzukommen, wenn dieser Node per DnD verschoben wurde? Kann ich jedem Node zur Laufzeit ein eindeutiges Kennzeichen hinterlegen?
So funktioniert das nicht. familienmitglied ist null.
HashMap<DefaultMutableTreeNode,HashMap<String,String>> familie=new HashMap<DefaultMutableTreeNode,HashMap<String,String>>();
HashMap<String,String> familienmitglied=new HashMap<String,String>();
...
DefaultMutableTreeNode vater=new DefaultMutableTreeNode("Karl");
familienmitglied.put("geschlecht", "männlich");
familienmitglied.put("alter", "45");
familienmitglied.put("hobby", "briefmarken");
familie.put(vater, familienmitglied);
DefaultMutableTreeNode mutter=new DefaultMutableTreeNode("Susanne");
familienmitglied.put("geschlecht", "weiblich");
familienmitglied.put("alter", "44");
familienmitglied.put("hobby", "jogging");
familie.put(mutter, familienmitglied);
DefaultMutableTreeNode sohn=new DefaultMutableTreeNode("Peter");
familienmitglied.put("geschlecht", "männlich");
familienmitglied.put("alter", "15");
familienmitglied.put("hobby", "handball");
familie.put(sohn, familienmitglied);
...
public void runThisTree(TreeModel model, Object node){
for(int i=0;i<model.getChildCount(node);i++){
Object child = model.getChild(node,i);
HashMap<String,String> familienmitglied=familie.get(child);
//familienmitglied ist null
runThisTree(model,child);
}
}
Zuletzt bearbeitet: