【问题标题】:Get TabbedPane tab content background color - Java Swing获取 TabbedPane 选项卡内容背景颜色 - Java Swing
【发布时间】: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 :-)

标签: java swing


【解决方案1】:

考虑简单地将包含面板的不透明度设置为false。这应该让包装 JTabbedPane 的背景颜色通过该组件反射并实现所需的行为。此外,这将适用于所有平台和外观。

类似:

pane.setOpaque(false);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-25
    • 2012-02-17
    • 2012-08-08
    • 1970-01-01
    • 2015-08-31
    • 2014-05-07
    • 2017-04-24
    • 2012-04-16
    相关资源
    最近更新 更多