Nimbus外观和感觉忽略了JTree的覆盖

时间:2016-01-26 19:06:07

标签: java jtree nimbus

我正在使用Java 7并在我的桌面应用程序上实现了Nimbus Look And Feel。我正在使用JTree,我试图通过设置UIDefaults来控制节点上文本的颜色。它在节点突出显示时有效,但当节点未突出显示时,您无法在节点上看到文本。

我认为那个设置

Tree.textForeground=\#ffffff
Tree.textBackground=\#4f4f4f

会做到这一点,但事实并非如此。但是,如果节点突出显示,则以下两个设置正常工作:

Tree.selectionBackground=\#71a3ff 
Tree.selectionForeground=\#ffffff

我设法控制文本前景的唯一方法是更改​​渲染器,如下所示。

tree = new JTree();
tree.setShowsRootHandles(true);

UIDefaults defs = UIManager.getDefaults();
TreeRenderer renderer = new TreeRenderer();

renderer.setTextNonSelectionColor(defs.getColor("Tree.textForeground"));
tree.setCellRenderer(renderer);

我的问题是

  1. 为什么属性Tree.textForeground无法正常工作
  2. 是否可以为非选择颜色设置另一个属性?
  3. 我的设置如下

    Tree.background=\#4f4f4f     
    Tree.foreground=\#ffffff     
    Tree.selectionBackground=\#71a3ff 
    Tree.selectionForeground=\#ffffff
    Tree.textForeground=\#ffffff    
    Tree.textBackground=\#4f4f4f     
    Tree.selectionBorderColor=\#71a3ff 
    Tree.droplineColor=\#ff0000             
    Tree[Enabled+Selected].background=\#71a3ff
    Tree[Enabled+Selected].foreground=\#ffffff
    

    非常感谢提前。

0 个答案:

没有答案