Написал ренедерер для JTree, чтобы отображать иконки в зависимости от условий
private class MyObjRenderer extends DefaultTreeCellRenderer {
@Override
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 node = (DefaultMutableTreeNode)value;
NodeInfo nodeInfo = (NodeInfo)node.getUserObject();
ImageIcon icon = null;
if (nodeInfo.fld_id == 0) {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-1.png"));
}
switch (nodeInfo.type) {
case 0: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-2.png"));
break;
}
case 1001: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-4.png"));
break;
}
case 1002: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-5.png"));
break;
}
case 1003: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/900-4.png"));
break;
}
case 1004: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-3.png"));
break;
}
case 1005: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-6.png"));
break;
}
case 1006: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-7.png"));
break;
}
case 1007: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-8.png"));
break;
}
case 1008: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-9.png"));
break;
}
case 1009: {
icon = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-10.png"));
break;
}
}
if (icon!=null) setIcon(icon);
setToolTipText(value.toString());
return this;
}
}
Все работает ОК. Однако, когда я редактирую ветку или лист, то в режиме редактирования, показывается стандартная иконка.
Как можно сделать, чтобы при редактировании также отображалась та иконка, которая мне необходима