可以将颜色设置为JTree吗?

Ven*_*kat 0 java jtree jframe

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

    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);
Run Code Online (Sandbox Code Playgroud)

可以在JTree中设置颜色吗?

Joe*_*han 7

树节点的颜色(前景和背景)来自与您的树节点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.");
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,由于所有冲突的黄色,橙色和红色,执行此示例代码可能会伤害您的眼睛.;-) (2认同)