問題

 cmbSablonSecim = new ComboBox<>();
cmbSablonSecim.setItems(EnumSablonSecim.values());
 

私のコンボボックス - > Tumu、rideFIK、DAGILIM

私は自分のコンボボックスを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)を返さなければなりません。それは可能かどうか?ありがとうございました...

  ベストアンサー

ComboBox::setItemLabelGenerator

コンボボックスのラベルとしてislemAdiフィールドを表示できるかどうかを尋ねていますか?

あなたの列挙型に各項目を表示するために使用されるラベルを生成するコードを指定することができます。 ComboBox::setItemLabelGenerator を呼び出します。あなたのゲッターのためにメソッド参照を渡してください。 Vaquotaは、各項目を表示するために必要に応じてこのメソッドを呼び出します。

 cmbSablonSecim.setItemLabelGenerator(EnumSablonSecim::getIslemAdi);
 

マニュアルのデータプロバイダを持つデータのリストを表示するを参照してください。

  同じタグがついた質問を見る

javaenumsvaadin