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