Используйте подход, показанный в TreeIconDemo2
, чтобы подготовить визуализатор на основе значения модели. Например,
private class MyRenderer extends DefaultTreeCellRenderer {
private Icon okIcon;
public MyRenderer(Icon okIcon) {
this.okIcon = okIcon;
}
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean exp, boolean leaf, int row, boolean hasFocus) {
super.getTreeCellRendererComponent(
tree, value, sel, exp, leaf, row, hasFocus);
YourMutableTreeNode node = (YourMutableTreeNode) value;
if (leaf && node.getStatus().equals("OK")) {
setIcon(okIcon);
}
return this;
}
}
Приложение: Вы не можете просто вызвать nodeChanged()
для нового TreeNode
, который не является частью дерева; новый узел не имеет родителя. Если вы указываете существующий узел на nodeChanged()
, уведомление будет происходить автоматически. Если нужно, есть пример поиска дерева здесь .