tigger7985
Grünschnabel
Hallo,
ich lade meinen JTree mit Daten aus einer Datenabank.
Ich habe eine eigene Klasse aus DefaultMutableTreeNode abgeleitet in der ich noch Infos zu meinen Nodes speichere (zB db-ID und die Farbe des Icons (rot oder grün)).
Jetzt würde ich gern mit dieser Eigenschaft das Icon setzten, schaffe es aber nicht im Renderer das "Object value" in meine Klasse zu casten.
Fehlermeldung:
Code:
Mich verwirrt vor allem warum es nur an der Stelle nicht klappt.
funktioniert problemlos.
ich lade meinen JTree mit Daten aus einer Datenabank.
Ich habe eine eigene Klasse aus DefaultMutableTreeNode abgeleitet in der ich noch Infos zu meinen Nodes speichere (zB db-ID und die Farbe des Icons (rot oder grün)).
Jetzt würde ich gern mit dieser Eigenschaft das Icon setzten, schaffe es aber nicht im Renderer das "Object value" in meine Klasse zu casten.
Fehlermeldung:
Code:
java.lang.ClassCastException: java.lang.String cannot be cast to myTreeNode
at MainFrame$1.getTreeCellRendererComponent(MainFrame.java:64)
Code:
Code:
public Component getTreeCellRendererComponent(JTree tree,
Object value, boolean sel, boolean expanded, boolean leaf,
int row, boolean hasFocus) {
// myTreeNode userObject = (myTreeNode) value;
// War mein erster Versuch führte aber zu einem ähnlichen Fehler
// javax.swing.tree.DefaultMutableTreeNode cannot be cast to myTreeNode
DefaultMutableTreeNode currentTreeNode = (DefaultMutableTreeNode) value;
myTreeNode userObject = (myTreeNode) currentTreeNode
.getUserObject();
ImageIcon icon = new ImageIcon("src/pics/greenFlag.png");
icon.setImage(icon.getImage().getScaledInstance(25, 25,
Image.SCALE_DEFAULT));
ImageIcon iconRed = new ImageIcon("src/pics/redFlag.png");
iconRed.setImage(iconRed.getImage().getScaledInstance(25, 25,
Image.SCALE_DEFAULT));
setIcon(icon);
if (userObject.isRed) setIcon(iconRed);
}
Mich verwirrt vor allem warum es nur an der Stelle nicht klappt.
Code:
myTreeNode selectedNode = (myTreeNode) tree.getLastSelectedPathComponent();