Как раскрасить путь внутри JTree?
У меня есть JTree с некоторыми узлами, и мне нужно раскрасить только некоторые пути внутри этого дерева.
Условие следующее: если есть узел, соответствующий условию, то он должен быть также окрашен всеми своими предками до корня: это путь, который я хотел бы раскрасить.
Теперь я использую класс, расширяющий DefaultTreeCellRenderer, который может сканировать все узлы, но проблема в том, что у меня нет возможности пройти по вышеупомянутому пути, а по всему дереву.
Здесь функция:
@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);
// Assuming you have a tree of Strings
String currentNode = (String) ((DefaultMutableTreeNode) value).getUserObject();
String rootName = tree.getModel().getRoot().toString();
switch (rootName) {
case "Empty Set":
if (leaf && !(currentNode.equals("Empty Set")) ) {
// Paint the node in red
setForeground(new Color(255, 0 ,0));
ImageIcon icon = new ImageIcon(getClass().getResource("/resources/empty.png"));
setIcon(icon);
};
break;
//other case conditions...
Есть ли способ зафиксировать этот путь и раскрасить только заинтересованные узлы?