Come posso cambiare lo stile della freccia in un JComboBox

Diciamo che voglio usare un’immagine personalizzata per la freccia in JComboBox, come posso fare questo?

Capisco che sia ansible usare i file synth xml, o forse anche UIManager.put (…), ma non so come. Tutto quello che voglio fare in questo momento è cambiare l’immagine della freccia in qualcos’altro, programmaticamente o anche solo sovrascrivere l’immagine che usa. Come posso fare esattamente questo?

È ansible eseguire l’override di createArrowButton() in BasicComboBoxUI . BasicArrowButton è un comodo punto di partenza.

 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); } } 

Quindi installalo.

 JComboBox combo = new JComboBox(); combo.setUI(ColorArrowUI.createUI(combo));