13
假设我想为JComboBox中的箭头使用自定义图像,我该怎么做?如何更改JComboBox中的箭头样式
我明白这是可能的使用synth xml文件,或者甚至UIManager.put(...),但我不知道如何。我现在想要做的就是将箭头图像更改为其他内容,无论是以编程方式还是仅仅覆盖其使用的图像。我该如何做到这一点?
假设我想为JComboBox中的箭头使用自定义图像,我该怎么做?如何更改JComboBox中的箭头样式
我明白这是可能的使用synth xml文件,或者甚至UIManager.put(...),但我不知道如何。我现在想要做的就是将箭头图像更改为其他内容,无论是以编程方式还是仅仅覆盖其使用的图像。我该如何做到这一点?
您可以覆盖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));
对花色配色不负责任。 :-) – trashgod 2010-06-09 18:12:04
完美!非常感谢你:) – 2010-06-09 18:51:43
对我来说......也许是最容易从JComboBox和button.setIcon(),f.e.中提取JButton作为JComponent的。与JComboBox的mousehover效果的ButtonModel太.. +1为BasicUI – mKorbel 2011-07-02 18:45:43