覆盖JComboBox默认颜色

问题描述 投票:1回答:2

当L&F是Metal时,我试图覆盖JComboBox使用的默认颜色。我已经在UIManager中覆盖了以下自定义颜色;

  • ComboBox.font
  • ComboBox.selectionBackground
  • ComboBox.buttonShadow
  • ComboBox.buttonHighlight
  • ComboBox.disabledBackground

  • 控制
  • controlDkShadow
  • controlHighlight
  • controlLtHighlight
  • controlShadow

然而,我无法删除文本周围的浅蓝色矩形

我有什么想法可以改变这个吗?

alt text

java swing jcombobox
2个回答
4
投票

要做到这一点,你必须在你的外观和感觉中取代ComboBoxUI。并非所有东西都由UIDefaults中的颜色控制。 * UI类进行实际绘图。


2
投票

如果你在谈论整个组合框周围的浅蓝色边框(按钮和文字)。您可以通过将UIManager中的属性“Combobox.border”设置为null或其他边框来实现此目的。

如果您想进一步了解该主题,可以查看javax.swingx.BasicComboBoxUI。这是首先安装边框的地方。搜索方法“installDefaults”,它使用对javax.swing.LookAndFeel的静态调用来安装边框。

© www.soinside.com 2019 - 2024. All rights reserved.