首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeCellRenderer:如何设置背景色?

TreeCellRenderer:如何设置背景色?
EN

Stack Overflow用户
提问于 2013-05-12 02:28:53
回答 1查看 3.4K关注 0票数 7

为了改变组件的外观,我编写了一个自定义的TreeCellRenderer。一切都很好,除了setBackground没有任何效果。因为前景色总是正确地改变,所以代码肯定会被执行。由于选中的项以蓝色呈现,取消选中的项以白色呈现(无需自己编写代码),因此我假定JTree覆盖了我的更改。那么改变背景颜色的正确方法是什么呢?

这基本上是我的代码:

代码语言:javascript
复制
JTree tree = new JTree(); 
tree.setCellRenderer(new MyCellRenderer()); 

///////

public class MyCellRenderer extends DefaultTreeCellRenderer{

   @Override
   public Component getTreeCellRendererComponent(JTree tree, Object value,
        boolean isSelected, boolean expanded, boolean leaf, int row,
        boolean hasFocus) {

    JComponent c = (JComponent) super.getTreeCellRendererComponent(tree, value, isSelected, expanded, leaf, row, hasFocus);
      DefaultMutableTreeNode node = (DefaultMutableTreeNode) value; 
      MyData data = (MyData)node.getUserObject();   
      if(data.isX()){
          c.setForeground(Color.blue); 
          c.setBackground(Color.gray); 
      }
      return c; 
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-12 02:35:51

尝试添加对c.setOpaque(true)的调用。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16500414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档