1

当 L & F 是金属时,我试图覆盖 JComboBox 使用的默认颜色。我已将 UIManager 中的以下内容覆盖为自定义颜色;

  • 组合框字体
  • ComboBox.selectionBackground
  • ComboBox.buttonShadow
  • ComboBox.buttonHighlight
  • ComboBox.disabledBackground

  • 控制
  • 控制DkShadow
  • 控制高亮
  • controlLt高亮
  • 控制阴影

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

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

替代文字

4

2 回答 2

4

为此,您必须在外观中替换ComboBoxUI。并非所有内容都由 UIDefaults 中的颜色控制。*UI 类进行实际绘图。

于 2009-08-28T12:45:29.847 回答
2

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

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

于 2009-08-28T12:42:45.430 回答