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

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

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

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