Как изменить стиль стрелки в JComboBox

Скажем, я хочу использовать пользовательский образ для стрелки в JComboBox, как я могу это сделать?

Я понимаю, что это возможно, используя XML файлы synth или, возможно, даже UIManager.put(...), но я не знаю, как это сделать. Все, что я хочу сделать в это время, - это изменить изображение стрелки на что-то другое, либо программно, либо даже просто переопределить изображение, которое оно использует. Как я могу это сделать?

Ответы

Ответ 1

Вы можете переопределить createArrowButton() в BasicComboBoxUI. 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));