如何在 Java 中将浮动枚举与 Jcombobox 一起使用
How do I use float enums with a Jcombobox in Java
我有一个枚举 class,它的值使用浮点数,例如
public enum Size {
SMALL(10.50f),MEDIUM(12.35f),LARGE(15.90f);
private float value;
Size(float value){
this.value = value;
}
public float getValue(){
return this.value;
}
}
我想将此枚举用于 'generate' 将用于 Jcombobox 的列表,用户将在其中 select 其中一种尺寸。
ddSize.setModel((Size.values()));
我正在尝试使用上面的代码,但出现以下错误:
error: incompatible types: Size[] cannot be converted to ComboBoxModel<String>
ddSize.setModel((Size.values()));
如果可能的话,我需要一种方法来使用浮点枚举而不会出现此错误。
setModel
拿了一个 ComboBoxModel<E>
,所以你可以用 DefaultComboBoxModel
来填充 JComboBox
像这样:
ddSize.setModel(new DefaultComboBoxModel(Size.values()));
确保它有效:
IntStream.range(0, ddSize.getItemCount())
.forEach(index -> System.out.println(ddSize.getItemAt(index)));
输出
SMALL
MEDIUM
LARGE
我有一个枚举 class,它的值使用浮点数,例如
public enum Size {
SMALL(10.50f),MEDIUM(12.35f),LARGE(15.90f);
private float value;
Size(float value){
this.value = value;
}
public float getValue(){
return this.value;
}
}
我想将此枚举用于 'generate' 将用于 Jcombobox 的列表,用户将在其中 select 其中一种尺寸。
ddSize.setModel((Size.values()));
我正在尝试使用上面的代码,但出现以下错误:
error: incompatible types: Size[] cannot be converted to ComboBoxModel<String>
ddSize.setModel((Size.values()));
如果可能的话,我需要一种方法来使用浮点枚举而不会出现此错误。
setModel
拿了一个 ComboBoxModel<E>
,所以你可以用 DefaultComboBoxModel
来填充 JComboBox
像这样:
ddSize.setModel(new DefaultComboBoxModel(Size.values()));
确保它有效:
IntStream.range(0, ddSize.getItemCount())
.forEach(index -> System.out.println(ddSize.getItemAt(index)));
输出
SMALL
MEDIUM
LARGE