Java 可以将颜色设置为JTree吗?

Java 可以将颜色设置为JTree吗?,java,jframe,jtree,Java,Jframe,Jtree,我创建了一棵树,但我不知道为它设置颜色 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,BorderL

我创建了一棵树,但我不知道为它设置颜色

    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中设置颜色吗?

JTree
继承
JComponent
中的颜色方法,例如
setBackground
。例如,请参见
JTree
JComponent
继承颜色方法,例如
setBackground
。例如,请参见树节点的颜色(前景和背景)来自与
JTree
关联的
TreeCellRenderer
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.");
}
树节点的颜色(前景和背景)来自与
JTree
关联的
TreeCellRenderer
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.");
}

将颜色设置为JTree的树节点将颜色设置为JTreen的树节点请注意,由于黄色、橙色和红色的冲突,执行此示例代码可能会伤害您的眼睛。;-)请注意,由于黄色、橙色和红色的冲突,执行此示例代码可能会伤害您的眼睛。;-)
setBackground
设置树的背景色,但不设置单元格的背景色。因此,节点的文本仍然显示为白色背景。
setBackground
设置树的背景颜色,但不设置单元格的背景颜色。因此,节点的文本仍然显示为白色背景。