覆盖JComboBox默认颜色

时间:2009-08-28 10:37:29

标签: java swing jcombobox

我正在尝试覆盖J& S时使用的JComboBox使用的默认颜色。 F是金属。 我在UIManager中覆盖了以下自定义颜色;

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

  • control
  • controlDkShadow
  • controlHighlight
  • controlLtHighlight
  • controlShadow

但是我无法移除文本周围的浅蓝色矩形

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

alt text

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

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

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