Enum на основе Combobox - PullRequest
       16

Enum на основе Combobox

1 голос
/ 02 октября 2019
cmbSablonSecim = new ComboBox<>();
cmbSablonSecim.setItems(EnumSablonSecim.values());

Мое комбинированное окно -> TUMU, GRAFIK, DAGILIM

Я хочу заполнить свой комбинированный список Enum-> islemAdi

Combobox -> Tümü, Grafik, Dağılım (Enum-> islemAdi)

public enum EnumSablonSecim {
    TUMU(0, "Tümü"),
    GRAFIK(1, "Grafik"),
    DAGILIM(2, "Dağılım")
    ;

    private final Integer islemKodu;
    private final String islemAdi;

    private EnumSablonSecim(Integer islemKodu, String islemAdi) {
        this.islemKodu = islemKodu;
        this.islemAdi = islemAdi;
    }

    public Integer getIslemKodu() {
        return islemKodu;
    }

    public String getIslemAdi() {
        ResourceBundle messages = I18n.getInstance(this.getClass());
        if (messages.containsKey(islemAdi)) {
            return messages.getString(islemAdi);    
        } else {
            return islemAdi;
        }
    }

    public static EnumSablonSecim get(Integer islemKodu) {
        for (EnumSablonSecim enumSablonSecim : EnumSablonSecim.values()) {
            if (enumSablonSecim.islemKodu == islemKodu) {
                return enumSablonSecim;
            }
        }
        return null;
    }
}

Мой комбинированный список должен возвращаться (islemAdi). Это возможно или нет? Спасибо ...

1 Ответ

6 голосов
/ 02 октября 2019

ComboBox::setItemLabelGenerator

Вы спрашиваете, можете ли вы показать поле islemAdi в качестве метки в поле со списком?

Можно указать код для создания метки, используемой для отображения каждогоэлемент в вашем перечислении. Звоните ComboBox::setItemLabelGenerator. Передайте ссылку на метод для вашего получателя. Затем Ваадин вызывает этот метод по мере необходимости для отображения каждого элемента.

cmbSablonSecim.setItemLabelGenerator(EnumSablonSecim::getIslemAdi);

См. Отображение списка данных с поставщиками данных в руководстве.

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