Как сделать так, чтобы мой Swing JComboBox расширялся по горизонтали, а не по вертикали?

Я работаю с Swing и добавляю JComboBox в JPanel. Обычно, когда вы щелкаете JComboBox, он перечисляет возможные варианты по вертикали (аналогично полям со списком на любом веб-сайте).

Тем не менее, я хотел бы, чтобы ComboBox расширялся по горизонтали - есть ли способ сделать это без написания пользовательского рендерера?

Вертикальное расширение

[ ComboBox ]

- Option
- Option
- Option

Горизонтальное расширение

[ ComboBox ] -- [ Option | Option | Option | Option ]

1 ответ

Решение

Я уверен, что ответ на ваш вопрос "нет". Вам придется построить хотя бы часть рендера, чтобы сделать это для вас. Но вот начало:

//Override the createPopup method - everything else can stay the same
public static CustomRenderer extends MetalComboBoxUI{
    @Override
    protected ComboPopup createPopup() {
        // Do something different here
        ComboPopup result = super.createPopup();
        return result;
    }
}

И вы захотите установить этот интерфейс на ComboBox, к которому вы хотите применить box.setUI(new CustomRenderer());

Другие вопросы по тегам