# JTree sortieren



## Guest (21. Jan 2004)

Hallo,

weiss jemand, ob es beim JTree eine Methode gibt,
mit der man die Blätter eines Knotens alphabetisch sortieren kann ?  ???:L


----------



## HeyMan (21. Jan 2004)

hi,

kenn mich mit bäumen leider nicht so aus, gehe aber davon aus, dass du die bauminhalte in einer Hashtable aufbewarst.
Also so oder?:

```
Hashtable hash= new Hashtable();
 hash.put("Blatt",Objekt);
 hash.put("Knoten", Verctor oder Hash);
  ...
JTree tree = new JTree(hash);
```
Jetzt kannst du ja einfach die Hashtable sortieren. Naja, was man eben unter einfach versteht 

gruß

heyman


----------



## sibirianman (22. Aug 2007)

nach dieser Lösung habe ich auch immer gesucht. Und Hurra gefunden

die methode 
	
	
	
	





```
insert(DefaultMutableTreeNode newChild, int childIndex)
```
 von DefaultMutableTreeNode muss wie folgt überschrieben werden:


```
public void insert(DefaultMutableTreeNode newChild, int childIndex) {
		super.insert(newChild, childIndex);
		Collections.sort(this.children, nodeComparator);
	}

	protected static Comparator nodeComparator = new Comparator () {
		public int compare(Object o1, Object o2) {
		       return o1.toString().compareToIgnoreCase(o2.toString());
		}
		
		public boolean equals(Object obj) {
			return false;
		}
	};
```

Folgendes habe ich gemacht:

1) Eigene Klasse erstellen die von DefaultMutableTreeNode erbt.

```
public class MyNode extends DefaultMutableTreeNode {
public String toString() {
return name;
}                             
}
```
2) darin dann eben die methode mit dem Comparator einfügen.

3) Es muss darauf geachtet werden, dass MyNode die Methode *toString* hat.


----------

