【发布时间】:2014-11-14 09:29:17
【问题描述】:
经过一些广泛的搜索,我无法弄清楚如何获得下图中红色箭头所指的颜色。我想获得这个颜色值的原因是在 JTabbedPane (蓝色箭头)内设置窗格背景具有相同的值,因此两种颜色之间没有区别。在 Windows 上,颜色为白色(红色箭头),在 Mac 上为 230、230、230 RGB,在 Linux 上取决于 GUI。因此,通过以编程方式获取此值,我不必为每个操作系统设置它。
知道如何做到这一点吗?我尝试在 UIManager.getDefaults() 中搜索 230、230、230,但没有这样的值。
提前致谢
【问题讨论】:
-
最简单的解决方案不是让您的“JTabbedPane 内的窗格”不透明(
pane.setOpaque(false);?这样,JTabbedPane 的背景颜色将通过该窗格显示,无论它在哪个平台上运行? -
否则,您应该可以使用
UIDefaults.getDefaults().getColor("TabbedPane.background"),但我不推荐它,因为它可能会在某些 L&F 上失败。使用建议的第一个解决方案要好得多。 -
供参考,UI委托的来源引用here;这可能是
fillTabWithBackground()计算的颜色。 -
@Guillaume Polet 您能否发表您的第一条评论作为答案?这是我找到的最好的解决方案。谢谢。
-
@rodd 好的,不完全确定,我无法测试它,因为我没有 Mac :-)