Есть ли способ заставить JComboBox вести себя как HTML Select? - PullRequest
4 голосов
/ 03 марта 2009

То, что я пытаюсь сделать, имитирует тег HTML Select. Я хочу отображать текст в качестве опции, но при выборе я буду использовать его значение.

Например, у меня есть список названий стран. Однако когда пользователь выбирает Японию, я хочу получить код локали для этой страны. Таким образом, пользователь видит, что он выбрал Японию, но мой код получит «ja_JP» или что-то в этом роде.

Я стараюсь не хранить название страны и код локали в HashMap или что-то в этом роде.

Ответы [ 2 ]

8 голосов
/ 03 марта 2009

Создание объекта Country, который содержит отображаемое имя и код страны. Вы можете сделать быструю и грязную и переопределить toString, чтобы показать отображаемое имя, а затем просто получить код, когда он вам нужен, когда пользователь что-то выбирает.

public class Country
{
    String display;
    String code;

    @Override
    public String toString()
    {
        return display;
    }

    public String getCode()
    {
        return code;
    }
}

Оставь конструктор, потому что я ленивый. Если вы недовольны переопределением toString, вы также можете создать свой собственный рендер, который работает с объектами Country, и использовать вместо этого отображение через новый метод получения.

1 голос
/ 03 марта 2009

РЕДАКТИРОВАТЬ: мне нужно печатать быстрее.

Обычно я создаю пользовательский объект для хранения «value» и переопределяю toString (), чтобы вернуть то, что должен показать JComboBox. Кроме того, вы можете написать свой собственный рендерер ячейки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...