Как раскрасить путь внутри 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...

Есть ли способ зафиксировать этот путь и раскрасить только заинтересованные узлы?

0 ответов

Другие вопросы по тегам