繁体   English   中英

TreeCellRenderer:如何设置背景颜色?

[英]TreeCellRenderer: how to set background color?

我编写了一个自定义的TreeCellRenderer来更改组件外观。 一切正常,除了setBackground无效。 代码肯定会执行,因为前景色始终会正确更改。 由于所选项目以蓝色呈现并且取消选择白色项目(没有自己编写该代码),我认为我的更改被JTree覆盖。 那么改变背景颜色的正确方法是什么?

这基本上是我的代码:

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; 
    }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM