Hi,
ich habe in meinem Programm einen JTree, der ein Dateisystem repräsentiert welches in einer entfernten Datenbank gespeichert ist.
Jetzt möchte ich dass Dokumente, mit dem Symbol für eine Datei dargestellt werden. (Nicht der hässliche Punkt beim WindowsLookAndFeel) und vor allem Ordner mit dem Ordnersymbol. Auch wenn sie keine Kinder enthalten.
Das Prinzipielle vorgehen ist klar. Ich muss einen eigenen TreeCellRenderer schreiben, und auch einen eigenen TreeNode, der weiß ob er eine Datei oder ein Ordner ist.
Den eigenen TreeNode habe ich. Den egenen CellRenderer Prinzipiell auch :
Problem an der Methode mit dem FileSystemView ist, dass die Dateien lokal nicht vorliegen, sondern wie schon gesagt nur in der Datenbank liegen. Fällt also weg.
Bei der zweiten muss ich mir die Bildchen selber malen, finde ich auch nicht so toll.
Gibt es nicht eine Möglichkeit sich die entsprechenden Bildchen von Hand aus einem LookAndFeel zu holen ?
Beste Grüße
Boozer
ich habe in meinem Programm einen JTree, der ein Dateisystem repräsentiert welches in einer entfernten Datenbank gespeichert ist.
Jetzt möchte ich dass Dokumente, mit dem Symbol für eine Datei dargestellt werden. (Nicht der hässliche Punkt beim WindowsLookAndFeel) und vor allem Ordner mit dem Ordnersymbol. Auch wenn sie keine Kinder enthalten.
Das Prinzipielle vorgehen ist klar. Ich muss einen eigenen TreeCellRenderer schreiben, und auch einen eigenen TreeNode, der weiß ob er eine Datei oder ein Ordner ist.
Den eigenen TreeNode habe ich. Den egenen CellRenderer Prinzipiell auch :
Code:
public class CustomTreeCellRenderer extends DefaultTreeCellRenderer{ private FileSystemView system; // die brauchen wir für die Icons public CustomTreeCellRenderer(){ system = FileSystemView.getFileSystemView(); } public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus){ super.getTreeCellRendererComponent( tree, value, selected, expanded, leaf, row, hasFocus ); CustomNode node = (CustomNode)value; if(node.isDatei()){ // 2 Möglichkeiten kenne ich schon this.setIcon(new ImageIcon("wasmanwill.jpg|gif|png(?)")); // oder this.setIcon(system.getSystemIcon(new File(node.getUrl()))); }else{ // ... } return this; } }
Bei der zweiten muss ich mir die Bildchen selber malen, finde ich auch nicht so toll.
Gibt es nicht eine Möglichkeit sich die entsprechenden Bildchen von Hand aus einem LookAndFeel zu holen ?
Beste Grüße
Boozer
Comment