P
Polo488
Gast
Hallo Zusammen ich möchte gerne in meinem JTREE, je nach ebene ein andere Hintergrundfarbe(Komplette Zeile) haben, dafür habe ich mir folgendes Beispiel angeschaut.
http://www.java-forum.org/java-faq-beitraege/23426-jtree-teil-3-darstellung-daten.html
Und so umgesetzt
http://www.java-forum.org/java-faq-beitraege/23426-jtree-teil-3-darstellung-daten.html
Und so umgesetzt
Java:
import java.awt.Color;
import java.awt.Component;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
// Für die TreeIcons
public class MyRenderer extends DefaultTreeCellRenderer {
Icon DataBaseIcon;
Icon TableIcon;
Icon FieldIcon;
public MyRenderer(){
DataBaseIcon = new ImageIcon("Icon/database-icon.png");
TableIcon = new ImageIcon("Icon/Windows-Table-icon.png");
FieldIcon = new ImageIcon("Icon/Field.png");
}
public Component getTreeCellRendererComponent( JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
DefaultMutableTreeNode ItemValue = (DefaultMutableTreeNode)value;
if (ItemValue.getUserObject() instanceof CustomTreeItem){
CustomTreeItem Item =(CustomTreeItem)ItemValue.getUserObject();
if(Item.getHierachie()== Global.TreeHierachie.DataBase){
setIcon(DataBaseIcon);
}
if(Item.getHierachie()== Global.TreeHierachie.Table){
setIcon(TableIcon);
}
if(Item.getHierachie()== Global.TreeHierachie.Field){
setIcon(FieldIcon);
setBackground(Color.red);//funktioniert nicht
}
}
return this;
}
}
Die Hintergrundfarbe wird nicht verändert