【问题标题】:Remove Unexpected border of JTabbedPane删除 JTabbedPane 的意外边框
【发布时间】:2020-02-18 18:51:57
【问题描述】:

我正在尝试在 JTabbedPane 中添加选项卡。它正在显示下面提到的白色边界线,这是我在这里没想到的,因为除了文本颜色的白色之外,每种颜色都已设置为黑色。我可能会错过什么。 我正在尝试从 jitsi 项目中更改 this

Here is 到目前为止我所尝试的。
操作系统:Ubuntu 19.10:Java 版本:1.8.0_242
Windows 10 专业版:Java 版本:1.8.0_241
我为此框架使用默认外观,而对于我手动创建的设计,它是 Nimbus

【问题讨论】:

  • 不要发布所有代码 - 而是发布minimal reproducible example
  • @sleepToken 请看问题
  • @andrew-thompson 任何帮助都会非常感激

标签: java swing jtabbedpane


【解决方案1】:

问题的答案在很大程度上取决于您用于应用程序的外观。我无法通过仅查看屏幕截图来判断您使用的是哪一个,因为您对其进行了很多修改,并且您在安装它的问题中遗漏了部分代码。如果您没有安装任何特定的 - 您正在运行默认的外观,如果我没记错的话,这也可能会因 OS/JDK 版本而有所不同。

正如 @sleepToken 已经在评论中所说的那样 - 不要发布代码的随机部分或所有代码,而是发布 SSCCE。虽然有时您可能认为这是不必要和/或无关的 - 在许多情况下并非如此,它确实有助于阅读并尝试回答您的问题的人运行代码并在必要时调试问题。

话虽如此 - 我可以对您的问题给出一个一般性的答案:所有组件都由它们各自的 UI 实现绘制(在这种特殊情况下为TabbedPaneUI),并且在某些情况下,部分绘制代码可能无法配置,因为例如某些颜色或其他选项可能是硬编码的。您可以简单地查看您的应用程序使用的特定 UI 实现的源代码,找到您想要配置的绘画代码,并首先查看它是否实际上是可配置的。

如果您的应用程序使用MetalLookAndFeel - 实现是MetalTabbedPaneUI。从我可以通过查看它的代码得知 - 它使用来自TabbedPane.highlightTabbedPane.borderHightlightColorTabbedPane.darkShadow 边框的 UI 默认颜色。为 TabbedPane.highlight 添加自定义颜色可能会为您解决问题,因为您没有提到您在问题中修改了该颜色。

如果没有 - 我再次建议您发布 SSCCE 以及您的操作系统类型/版本,以防您使用本机外观。 Native Look and Feel 在不同操作系统版本的不同 JDK 版本之间存在差异,并且通常使用可能无法配置的高度定制的 UI 实现。

【讨论】:

  • 请看问题。我已经添加了到目前为止我已经实现的整个类
  • 感谢您的建议,但它不起作用
  • 您链接的类不是SSCCE,它包含许多与问题无关的代码。隔离一个小示例(包含JTabbedPane 以及您迄今为止对 UI 默认值应用的更改)并在此处的问题中提供它。也不要链接到外部网站,请始终将包含问题的代码示例放在您的问题中。
猜你喜欢
  • 2015-12-20
  • 1970-01-01
  • 2016-06-04
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多