Как я могу изменить стиль стрелки в JComboBox - PullRequest
17 голосов
/ 09 июня 2010

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

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

1 Ответ

23 голосов
/ 09 июня 2010

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