java - 可以在 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,BorderLayout.CENTER);

可以在 JTree 中设置颜色吗?

最佳答案

树节点的颜色(前景和背景)来自与 JTree 关联的 TreeCellRendererJTree 的树单元渲染器取决于外观,但您可能可以假设它是 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.");
}

关于java - 可以在 JTree 中设置颜色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2379403/

相关文章:

java - 单击按钮后更改 JPanel

java - 在自定义 TreeCellEditor 中保存 JComboBox 的值

java - Android Retrofit 无响应

java - 如何在java中对k-map进行分组?

java - 如何在 Groovy 中传递值

java - 处置 JFrame

java - 如何将两个 JPanel 添加到 JFrame 的中心?

java - 填充 JTree

java - 更改JTree中某个节点的图标?

java - 向上转换模板参数类型