Возможно ли установить цвет в JTree? - PullRequest
0 голосов
/ 04 марта 2010

Я создал дерево, но не знаю, как его настроить.

    JTree tree;
    JList list;
    JFrame frame;
    tree=new JTree("Tree");
    frame.add(tree,BorderLayout.WEST);
    tree.addTreeSelectionListener(this);
    frame.add(teamMember,BorderLayout.NORTH);
    frame.add(list,BorderLayout.CENTER);

Можно ли установить цвет в JTree?

Ответы [ 2 ]

7 голосов
/ 07 марта 2010

Цвета (как переднего плана, так и фона) для ваших узлов дерева берутся из TreeCellRenderer, который связан с вашим JTree. Средство визуализации древовидных ячеек для вашего JTree зависит от внешнего вида, но вы можете предположить, что оно происходит от DefaultTreeCellRenderer. Если это так, то вы можете вызвать несколько методов настройки цвета на DefaultTreeCellRenderer, чтобы изменить цвета вашего дерева, например:

tree = new JTree(root);
if (tree.getCellRenderer() instanceof DefaultTreeCellRenderer)
{
    final DefaultTreeCellRenderer renderer = 
        (DefaultTreeCellRenderer)(tree.getCellRenderer());
    renderer.setBackgroundNonSelectionColor(Color.YELLOW);
    renderer.setBackgroundSelectionColor(Color.ORANGE);
    renderer.setTextNonSelectionColor(Color.RED);
    renderer.setTextSelectionColor(Color.BLUE);
}
else
{
    System.err.println("Sorry, no special colors today.");
}
0 голосов
/ 04 марта 2010

JTree наследует цветовые методы от JComponent, например setBackground. См. Например здесь

...