在使用JTree时,当我们需要自己定义渲染器时,就需要实现TreeCellRenderer类或者继承DefaultTreeCellRenderer类。不管是实现或者继承,当我们需要改变背景颜色而调用setBackground()方法时,设置可能无效(有意思的是设置前景颜色setForeground()确是有效的)。出现这种情况,我们就需要加上这样的语句:
this.setOpaque(true);
setOpaque方法用于设置控件是否透明。至于为什么设置透明就能使setBackground()方法有效,LZ表示自己所知甚少。
——————————————————————————————
参考:http://stackoverflow.com/questions/16500414/treecellrenderer-how-to-set-background-color