如何更改 JComboBox 中的箭头样式
Posted
技术标签:
【中文标题】如何更改 JComboBox 中的箭头样式【英文标题】:How can I change the arrow style in a JComboBox 【发布时间】:2011-03-01 19:24:48 【问题描述】:假设我想为 JComboBox 中的箭头使用自定义图像,我该怎么做?
我知道可以使用合成器 xml 文件,甚至 UIManager.put(...),但我不知道如何。此时我想做的就是将箭头图像更改为其他内容,以编程方式或什至只是覆盖它使用的图像。我该怎么做?
【问题讨论】:
【参考方案1】:您可以在BasicComboBoxUI
中覆盖createArrowButton()
。 BasicArrowButton
是一个方便的起点。
class ColorArrowUI extends BasicComboBoxUI
public static ComboBoxUI createUI(JComponent c)
return new ColorArrowUI();
@Override protected JButton createArrowButton()
return new BasicArrowButton(
BasicArrowButton.SOUTH,
Color.cyan, Color.magenta,
Color.yellow, Color.blue);
然后安装它。
JComboBox combo = new JComboBox();
combo.setUI(ColorArrowUI.createUI(combo));
【讨论】:
不负责花哨的配色方案。 :-) 完美!!非常感谢:) 对我来说......从 JComboBox 和 button.setIcon() 中提取 JButton 作为 JComponent 可能是最安全的,f.e.使用 ButtonModel 也可以为 JComboBox 提供鼠标悬停效果.. BasicUI 的 +1 @trashgod 谢谢。 :)以上是关于如何更改 JComboBox 中的箭头样式的主要内容,如果未能解决你的问题,请参考以下文章