S
Steffan
Gast
Ich hab einen JTree jedoch zeigt er mir nur bei Verzeichnissen ein Icon vor den Namen an. Bei Daten ist nur so ein Kreis. Es Gab doch eine Klasse/Methode die automatisch vor jede Datei das richtige icon setzt (txt, zip, ....).
Hier noch mein TreeModel Code.
und so wird mein JTree erzeugt
Hier noch mein TreeModel Code.
Code:
class FileTreeModel
implements TreeModel {
protected myFile root; // Wurzel
public void erneuerTree(){
}
public FileTreeModel(myFile root) {
this.root = root;
}
public void setroot(myFile pathnamer) {
this.root = pathnamer;
}
public Object getRoot() {
return root;
} // Liefert die Wurzel des Funktionsbaumes
public boolean isLeaf(Object node) {
return ( (myFile) node).isFile();
} // ist es ein Blatt oder nicht
private Vector listeners = new Vector();
public int getChildCount(Object parent) { //bekommt object Eltern und soll Anzahl Kind-Knoten dieses Knotens liefern
String[] children = ( (myFile) parent).list(); //gibt String Liste von parent
if (children == null)return 0; //wenn keine children dann 0
return children.length; // sonst Länge der Kinder zurückgeben
}
public Object getChild(Object parent, int index) { // bekommt parent und Index des gesuchten Kind-Knotens und liefert Object Kind-Knoten
String[] children = ( (myFile) parent).list(); //gibt String Liste von parent
if ( (children == null) || (index >= children.length))return null;
return new myFile( (myFile) parent, children[index]);
}
public int getIndexOfChild(Object parent, Object child) { //bekommt parent und object Kind
String[] children = ( (myFile) parent).list();
if (children == null)return -1; //wenn kinder 0 dann ende -1
String childname = ( (myFile) child).getName(); //String name des Kindes ist
//childname = childname.substring(0,6);
for (int i = 0; i > children.length; i++) {
if (childname.equals(children[i]))return i;
}
return -1;
}
public void valueForPathChanged(TreePath path, Object newvalue) {} // Wird aufgerufen, wenn der Wert für den Pfad geändert wurde.
public void addTreeModelListener(TreeModelListener l) {
listeners.add(l);
}
public void removeTreeModelListener(TreeModelListener l) {} // Entfernt den Listener
}
und so wird mein JTree erzeugt
Code:
myFile root = new myFile(System.getProperty("file.separator"));
final FileTreeModel model = new FileTreeModel(root);
jTree = new javax.swing.JTree(model);