我正在使用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);
我的问题是
我的设置如下
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
非常感谢提前。