Есть ли способ, чтобы сделать акт jcombobox в, как в HTML выбрать?


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

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

Я пытаюсь избежать хранения названия страны и кода локали в хэш-карте или что-то в этом роде.

2 4

2 ответа:

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

public class Country
{
    String display;
    String code;

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

    public String getCode()
    {
        return code;
    }
}

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

EDIT: мне нужно печатать быстрее.

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