2009-08-28 203 views
1

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

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

  • 控制
  • controlDkShadow
  • controlHighlight
  • controlLtHighlight
  • controlShadow

我却无法移除文本周围

任何想法,一个淡蓝色的长方形如何我可以改变这个?

alt text http://i32.tinypic.com/1zqvpdz.png

+0

仍然有这个问题,它让我发疯 – n002213f 2009-11-14 12:09:43

回答

4

要做到这一点,您必须在您的外观和感觉中更换ComboBoxUI。并非所有事情都由UIDefaults中的颜色控制。 * UI类实际绘制。

2

如果你谈论的是围绕整个组合框(按钮和文本),淡蓝色的边框。您可以通过将UIManager中的属性“Combobox.border”设置为null或另一个边框来实现此目的。

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