代码之家  ›  专栏  ›  技术社区  ›  Venkat

是否可以将颜色设置为jtree?

  •  0
  • Venkat  · 技术社区  · 14 年前

    我创造了一棵树,但我不知道如何给它上色。

        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 回复  |  直到 14 年前
        1
  •  7
  •   Joe Carnahan    14 年前

    树节点的颜色(前景和背景)来自 TreeCellRenderer 与您的 JTree . 树单元渲染器 树形结构 取决于外观和感觉,但你可以假设它是由 DefaultTreeCellRenderer . 如果是,则可以在 默认TreeCellRenderer 要更改树的颜色,请执行以下操作:

    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.");
    }
    
        2
  •  -1
  •   Frank    14 年前

    JTree 从继承颜色方法 JComponent ,例如 setBackground . 参见例如 here