Java 基于枚举的组合框
我的组合框必须返回(islemAdi)。是否可能?谢谢您…Java 基于枚举的组合框,java,enums,vaadin,Java,Enums,Vaadin,我的组合框必须返回(islemAdi)。是否可能?谢谢您…组合框::setItemLabelGenerator 您是否询问是否可以在组合框中将islemAdi字段显示为标签 您可以指定代码以生成用于显示枚举中每个项的标签。呼叫传递一个给你的getter。然后,Vaadin根据需要调用此方法来显示每个项目 public enum EnumSablonSecim { TUMU(0, "Tümü"), GRAFIK(1, "Grafik"), DAGILIM(2, "Dağıl
组合框::setItemLabelGenerator
您是否询问是否可以在组合框中将islemAdi
字段显示为标签
您可以指定代码以生成用于显示枚举中每个项的标签。呼叫传递一个给你的getter。然后,Vaadin根据需要调用此方法来显示每个项目
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;
}
}
请参阅手册中的。组合框::setItemLabelGenerator
您是否询问是否可以在组合框中将islemAdi
字段显示为标签
您可以指定代码以生成用于显示枚举中每个项的标签。呼叫传递一个给你的getter。然后,Vaadin根据需要调用此方法来显示每个项目
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;
}
}
参见手册。我不太明白你的问题,tümü,Grafik,Dağılım是枚举类型,但islemAdi是字符串,对吗?您想在组合框中输入这4个值吗?如果是,您可以为示例创建一个数组列表,并将其添加为ComboboxYes的值。是否可以不使用数组(使用直接枚举?)我不太理解您的问题,tümüm,Grafik,Dağlım是枚举类型,但islemAdi是字符串,对吗?您想在组合框中输入这4个值吗?如果是,您可以为示例创建一个数组列表,并将其添加为ComboBox的值。是否可以不使用数组(使用直接枚举?)。进一步说明:ComboBox的类型仍然是
ComboBox
,而不是ComboBox
,但您可以选择如何使用setItemLabelGenerator(…)
表示每个项。您仍然使用OP在问题中所写的相同行设置项目:cmbSablonSecim.setItems(EnumSablonSecim.values())代码>。无需创建字符串数组。进一步说明:组合框的类型仍然是ComboBox
,而不是ComboBox
,但您可以选择如何使用setItemLabelGenerator(..)
表示每个项。您仍然使用OP在问题中所写的相同行设置项目:cmbSablonSecim.setItems(EnumSablonSecim.values())代码>。不需要创建字符串数组。
cmbSablonSecim.setItemLabelGenerator(EnumSablonSecim::getIslemAdi);